我有一張桌子,其中我保持不同的米(水錶,電錶),並在另一個表中我保持每米的讀數。 表結構是這樣的: 儀表臺選擇以獲得兩個條目,從同一個表,按日期差異,在一行
MeterID | MeterType | MeterName
讀數表:
ReadingID | MeterID | Index | DateOfReading
用於儀表讀數每月讀。我現在要做的事情是獲取儀表信息,當前的讀數和以前的讀數。所以,如果我想有一個查詢,會導致以下行:
MeterID | MeterType | MeterName | CurrnetIndex | LastIndex
我到目前爲止以下查詢:
SELECT Meter.MeterID, Meter.MeterType, Meter.MeterName, CurrentReading.Index, PreviousReading.Index
FROM Meters AS Meter
LEFT OUTER JOIN Readings AS CurrentReading ON Meter.MeterID = CurrentReading.MeterID
LEFT OUTER JOIN Readings AS PreviousReading ON Meter.MeterID = PreviouseReading.MeterID
WHERE CurrentReading.ReadingID != PreviousReading.ReadingID AND DIMESTAMPDIFF(MONTH, CurrentReading.DateOfReading, PreviousReding.DateOfReading)=-1
的問題是,我可能沒有當前讀數或前或者兩者都有,但我仍然需要檢索儀表信息。我完全可以得到NULL列,但我仍然需要一行:)
+1在'LEFT JOIN'上使用多重條件 – 2010-10-30 21:24:32