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

私がしたいことは、テーブル t1 の accountID がテーブル t2 の accountID と等しくなるように、テーブル t2 から (select ステートメントに) accName 属性を追加することです。左結合はやりにくい。助けてください。どんな助けや指導も大歓迎です

4

2 に答える 2

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
于 2013-10-28T07:06:06.990 に答える
0

単純に 2 つを使用できます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

また、いくつかの間違いを修正しました:

  • 節に追加BYしました。GROUP BY
  • WHERE節 ( p != q AND p < qis equal to p < q)の冗長な条件を削除しました
于 2013-10-28T07:09:17.430 に答える