2015-09-18 6 views
-1

Простите мое невежество, прежде чем я начну, но я пытаюсь дважды ссылаться на ту же таблицу в запросе, чтобы вернуть одну строку. По какой-то причине я действительно борюсь за то, что я склоняюсь к концепции sub query/join. Для того, чтобы гарантировать, что я мог бы реально получить данные, которые я satrted с этим основным запросом:Борьба с подзапросом/JOIN

SELECT aCR 
, COUNT(CASE WHEN aSID = 30 THEN 1 ELSE NULL END) AS wtng 
, CASE WHEN aSID = 30 THEN DATE_FORMAT(aAT, '%d %b %H:%i') ELSE NULL END AS wAT 
, COUNT(CASE WHEN DATEDIFF(aC, CURDATE()) <=30 AND aSID != 30 THEN 1 ELSE NULL END) AS rpt 
, CASE WHEN DATEDIFF(aC, CURDATE()) <=30 AND asID != 30 THEN DATE_FORMAT(aAT, '%d %b %H:%i') ELSE NULL END AS rAT 

FROM a 

WHERE aCR = 1111111111 AND aHID = 44 GROUP BY aID 

, который дал мне этот

 aCR  | wtng |  wAT  | rpt |  rAT 
------------------------------------------------------------------- 
    1111111111 | 0  |  NULL  | 1 | 16 Sep 12:39 
    1111111111 | 1  | 17 Sep 17:59 | 0 |  NULL 

Это право данных, но мне нужно это на одной строке таким образом:

 aCR  | wtng |  wAT  | rpt |  rAT 
------------------------------------------------------------------- 
    1111111111 | 1  | 17 Sep 17:59 | 1 | 16 Sep 12:39 

Возможно, времена, когда нет совпадения с aCR, и поэтому строка не возвращается, но мне нужна строка, возвращающая, если wtng равно 1, rpt равно 1 или оба равны 1 ... И вот где я действительно изо всех сил. Я пробовал множество комбинаций подзапросов, но просто не могу их получить, поэтому я ищу помощь ... Извиняюсь заранее, если это действительно тупой вопрос или если я упускаю совершенно очевидное, но прямо сейчас я чувствовать, как будто я просто ходим по кругу ...

Действительно оценить вниз голосование, кем бы он ни был - это делает обучение гораздо больше удовольствия

+0

Просьба представить структуру таблицы и объяснить, где t столбец 'aID' - тот, который используется в группе. –

+0

@DaDaDom. Таблица проста. Группа была просто разделена на агрегацию COUNT. Я исправлю вопрос, включив в него структуру – Filious

+0

@Filious: просьба указать ваши инструкции 'CREATE TABLE' и, возможно, некоторые образцы данных. –

ответ

0

@DaDaDom, @Tobia Tesan благодаря, по крайней мере, отвечать по моей просьбе о помощи - я получил отличную помощь от другого форума, и вот ответ

SELECT aCR 
    , MAX(wtng) AS wtng 
    , MAX(wAT) AS wAT 
    , MAX(rpt) AS rpt 
    , MAX(rAT) ASrAT 
    FROM ("my query here") AS yourquery 
GROUP 
BY aCR