2015-09-18 50 views
-1

請在我開始之前原諒我的無知,但我試圖在查詢中引用同一個表兩次以恢復單個行。無論出於何種原因,我真的很難爭取到我的頭腦是子查詢/連接概念。爲了確保我能真正得到我這個基本的查詢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 
相關問題