SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.11.2022 12:59:42

algol
Участник
Зарегистрирован: 03.11.2022
Сообщений: 2

Результат SELECT не полон

Простой запрос с датами.
Если диапазон ограничен одним месяцем, результат правильный, если диапазон охватывает два и более месяцев, результат не правильный.


SELECT b.DateOp, SUM(b.CountBuy*p.Cost_Const) SumDay  
   FROM buys b  
   LEFT JOIN price p ON b.UNP = p.UNP  
   WHERE b.DateOp BETWEEN "2022/11/1" AND "2022/11/30" AND b.Promo=0  
   GROUP BY Day(b.DateOp)  
   ORDER BY DateOp DESC

02.11.2022    24300
01.11.2022    46150

SELECT b.DateOp, SUM(b.CountBuy*p.Cost_Const) SumDay  
   FROM buys b  
   LEFT JOIN price p ON b.UNP = p.UNP  
   WHERE b.DateOp BETWEEN "2022/10/1" AND "2022/11/30" AND b.Promo=0  
   GROUP BY Day(b.DateOp)  
   ORDER BY DateOp DESC

01.11.2022    46150
31.10.2022    10050
28.10.2022    43000
27.10.2022    30250

Неактивен

 

#2 03.11.2022 13:03:07

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Результат SELECT не полон

Попробуйте изменить формат даты - вместо / символ -
и вместо 1 01
то есть
2022/10/1
замените на
2022-10-01
итд


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 03.11.2022 13:19:30

algol
Участник
Зарегистрирован: 03.11.2022
Сообщений: 2

Re: Результат SELECT не полон

Менял. И формат даты и вместо диапазона, сравнения больше, меньше. Результат один.
Куда копать, как изменить запрос? Не понимаю.

Отредактированно algol (03.11.2022 13:20:38)


Прикрепленные файлы:
Attachment Icon Sova1.jpg, Размер: 40,494 байт, Скачано: 150

Неактивен

 

#4 03.11.2022 13:58:48

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Результат SELECT не полон

Покажите результат запроса

show create table  buys;


Вместо двойных кавычек оборачивайте даты в одинарные.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 03.11.2022 14:46:17

estic
Завсегдатай
Зарегистрирован: 01.10.2022
Сообщений: 25

Re: Результат SELECT не полон

algol написал:

Куда копать, как изменить запрос? Не понимаю.

Видимо, проблема из-за DAY() wink

Теперь нужно группировать по дню и месяцу. Или лучше сразу просто по дате, а то при накоплении данных со временем возникнет та же проблема с годами (если диапазон может расширяться).

Неактивен

 

#6 03.11.2022 18:19:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Результат SELECT не полон

Так и есть. DAY() возвращает номер дня в месяце, т.е. для 2022-10-01 и 2022-11-01 результат этой ф-ии будет одинаков.
Группируйте по дате.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson