2013-10-28 52 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

谢谢,我已经完成了。你的帮助非常重要)) –