Почему я все еще получаю нули? - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу самое раннее чтение для этого дня, и оно не должно быть нулевым.

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. Но я все еще получаю довольно много нулей.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Попробуйте этот запрос:

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
0 голосов
/ 08 ноября 2019

Хотя ваш код должен работать, почему вы не используете IS NOT NULL?

MeterReading IS NOT NULL

Я мог представить, что запрос не выполняется. Если MeterReading - это число, то у вас должна появиться ошибка преобразования типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...