SQLite сумма целое число по датам - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть таблица с именем Test

"Type" "Value" "Entered"
"O" "40090" "2018-02-01 13:37:00"
"L" "23830" "2018-02-01 10:21:00"
"L" "87140" "2018-02-01 15:26:00"
"L" "63030" "2018-02-01 4:55:00"
"L" "73090" "2018-02-02 12:32:00"
"O" "12320" "2018-02-02 13:0:00"

Я пытаюсь получать ежедневные суммы по типам за каждый день, используя следующий SQL:

select strftime('%Y-%m-%d', Entered) as "Date", sum(Value) as "Sum"
from Test
where Type="O"
group by "Date"

но я получаю NULL вместо 2018-02-02

При большем наборе данных к этой «нулевой дате» добавляется одна строка из каждого дня

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 02 ноября 2018

Это потому, что у вас есть "O" "12320" "2018-02-02 13:0:00 вместо "O" "12320" "2018-02-02 13:00:00, то есть у вас должно быть 13:00:00, а не 13:0:00 (0 пропущено из часа).


При большем наборе данных к этому «NULL» добавляется одна строка из каждого дня. дата "

Вы можете обнаружить их, используя SELECT * FROM Test WHERE entered LIKE '%:_:%';.

Если вам повезло, и все строки из-за пропущенного 0 и единственного 0, вы можете использовать следующее для исправления строк: -

UPDATE Test SET entered = replace(entered,':0:',':00:') WHERE entered LIKE '%:_:%' ;

Однако, если другие строки неверны по-другому, например, скажем, у вас есть 13: 1: 00 , тогда исправление будет более сложным, чем 1 , потому что фактическое значение может быть либо 13: 01: 00 или 13: 10: 00 .

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