powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запрос сгруппированный по разнице дат
6 сообщений из 6, страница 1 из 1
запрос сгруппированный по разнице дат
    #39668143
Manat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица(table1) поставщиков (itsName) , с суммой необходимой оплаты (val) и планируемой датой этой оплаты (disposeDate) и датой на которую данная информация актуальна (itsDate).

Помогите создать запрос выдающий по поставщикам их долг по количеству дней просрочки.
например:
компания1 - непросроченная сумма - сумма просроченная менее 10 дней -сумма просроченная менее 30 дней (но более 10) - сумма просроченная более 30 дней

itsDate-disposeDate - количество просроченных дней

p.s. это первое мое сообщение на данном форуме. если сделал что не так, подскажите исправлю.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
CREATE TABLE `table1` (
  `itsName` varchar(256) NOT NULL,
  `val` int(11) NOT NULL,
  `disposeDate` date NOT NULL,
  `itsDate` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



INSERT INTO `table1` (`itsName`, `val`, `disposeDate`, `itsDate`) VALUES
('200000031', 20670, '2016-08-31', '2018-06-29'),
('300008616', 1579, '2018-01-31', '2018-06-29'),
('300001344', 69556, '2017-04-30', '2018-06-29'),
('300001344', -14118, '2017-04-30', '2018-06-29'),
('300005256', 124792, '2017-04-30', '2018-06-29'),
('300005256', -46984, '2017-04-30', '2018-06-29'),
('300005256', -77808, '2017-04-30', '2018-06-29'),
('300005506', 248987, '2017-05-31', '2018-06-29'),
('300005506', -248987, '2017-05-31', '2018-06-29'),
('100000193', 12235760, '2018-07-01', '2018-06-29'),
('100000193', 1726452, '2018-07-01', '2018-06-29'),
('100000193', 12243601, '2018-07-01', '2018-06-29'),
('100000193', 12251443, '2018-07-01', '2018-06-29'),
('100000193', 12402257, '2018-07-02', '2018-06-29'),
('100000193', 12286131, '2018-07-03', '2018-06-29'),
('100000193', 12295314, '2018-07-03', '2018-06-29'),
('100000193', 12337849, '2018-07-04', '2018-06-29'),
('100000193', 12288755, '2018-07-05', '2018-06-29'),
('100000193', 1155336, '2018-07-06', '2018-06-29');
...
Рейтинг: 0 / 0
запрос сгруппированный по разнице дат
    #39668145
Manat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извинияюсь но я кажись сам решил)))
вот логика такова
Код: sql
1.
SELECT itsname, sum(if(disposeDate-itsdate>0,val,0)), sum(if(disposeDate-itsdate<10,val,0))  FROM `table1`  group by itsName
...
Рейтинг: 0 / 0
запрос сгруппированный по разнице дат
    #39668165
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Manatлогика таковаЛогика неверна. Вы вычитаете даты - и в таком контексте они преобразуются в числа. Вместо вычитания дат следует использовать функцию DATEDIFF().
...
Рейтинг: 0 / 0
запрос сгруппированный по разнице дат
    #39668188
Manat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
спасибо за замечание. я просто думал вычитание и есть разница в днях (от экселя такие мысли пришли)
...
Рейтинг: 0 / 0
запрос сгруппированный по разнице дат
    #39668192
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
mysql> SET @dt1 = CAST('2018-06-29' AS DATE);
Query OK, 0 rows affected (0.00 sec)

mysql> SET @dt2 = CAST('2018-07-06' AS DATE);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @dt1, @dt2, @dt2 - @dt1, DATEDIFF(@dt2,@dt1);
+------------+------------+-------------+---------------------+
| @dt1       | @dt2       | @dt2 - @dt1 | DATEDIFF(@dt2,@dt1) |
+------------+------------+-------------+---------------------+
| 2018-06-29 | 2018-07-06 |           0 |                   7 |
+------------+------------+-------------+---------------------+
1 row in set (0.00 sec)

mysql>
...
Рейтинг: 0 / 0
запрос сгруппированный по разнице дат
    #39668258
Manat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, все понял. спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запрос сгруппированный по разнице дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]