我有一张桌子,其中我保持不同的米(水表,电表),并在另一个表中我保持每米的读数。 表结构是这样的: 仪表台选择以获得两个条目,从同一个表,按日期差异,在一行
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