我想要当天的最早读物,并且不应为空。
update #tmpLargestAccounts set EarliestMeterReading=
SELECT TOP 1 ISNULL(MeterReading, 0)
FROM MeterReading
WHERE ISNUMERIC(MeterReading) = 1
AND isnull(MeterReading,'~') <> '~'
AND DateRead = CONVERT(DATE, GETDATE() - CONVERT(int, @DaysBack), 101)
AND Miu = #tmpLargestAccounts.Miu
ORDER BY ReadDate ASC
它应该给出其他不是null
的读数。一分钟后可以读取,但null
不能读取。但是我仍然有很多空值。
答案 0 :(得分:0)
尽管您的代码应该可以工作,但是为什么不使用IS NOT NULL
?
MeterReading IS NOT NULL
我可以想象查询失败。如果MeterReading
是数字,那么您应该收到类型转换错误。
答案 1 :(得分:0)
尝试此查询:
SELECT TOP 1 MeterReading
FROM MeterReading
WHERE MeterReading IS NOT NULL
AND DateRead = CONVERT(DATE, GETDATE() - CONVERT(int, @DaysBack), 101)
AND Miu = #tmpLargestAccounts.Miu
ORDER BY ReadDate ASC