2013-10-28 48 views
0

這裏是我的代碼:使用左聯接包含許多表

SELECT a.accNumber, 
    a.Rest, 
    dateadd(day, 1, min(a.DATE)), 
    min(b.DATE) 
FROM t1 a 
LEFT JOIN t1 b 
    ON a.accNumber = b.accNumber 
WHERE a.DATE <> b.DATE 
    AND a.DATE < b.DATE 
    AND a.Rest <> 0 
    AND a.accNumber = b.accNumber 
GROUP a.accNumber, 
    a.Rest 
ORDER BY a.accNumber, 
    3 

我想要做的就是從表t增加accName屬性(選擇語句),這樣的表t1的帳戶ID等於表的帳戶ID T2。左連接使得難以做到。請幫忙。任何幫助或指導將不勝感激

回答

0
SELECT a.accNumber,b.accName, 
    a.Rest, 
    dateadd(day, 1, min(a.DATE)), 
    min(b.DATE) 
FROM t1 a 
LEFT JOIN t2 b 
    ON a.accNumber = b.accNumber 
     AND a.DATE <> b.DATE 
     AND a.DATE < b.DATE 
     AND a.Rest <> 0 
GROUP BY a.accNumber,b.accName, 
    a.Rest 
ORDER BY a.accNumber, 
    3 
+0

對不起,聽不懂。 accName屬性表單t2在哪裏? –

+0

提供您的表架構.. –

0

你可以簡單地使用兩個LEFT JOIN

SELECT a.accNumber, a.Rest, dateadd(day,1,MIN(a.Date)), MIN(b.Date), t2.accName 
FROM t1 a 
LEFT JOIN t1 b ON a.accNumber=b.accNumber 
LEFT JOIN t2 ON a.accId = t2.accId 
WHERE a.Date<b.Date 
AND a.Rest<>0 
AND a.accNumber=b.accNumber 
GROUP BY a.accNumber, a.Rest 
ORDER BY a.accNumber, 3 

我也是固定的幾個錯誤:

  • 我加入GROUP BY條款BY;
  • 我在WHERE條款去掉冗餘條件(p != q AND p < q相當於p < q
+0

謝謝,我已經完成了。你的幫助非常重要)) –