Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запрос сгруппированный по разнице дат / 6 сообщений из 6, страница 1 из 1
02.07.2018, 07:56
    #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
02.07.2018, 08:01
    #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
02.07.2018, 09:14
    #39668165
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос сгруппированный по разнице дат
Manatлогика таковаЛогика неверна. Вы вычитаете даты - и в таком контексте они преобразуются в числа. Вместо вычитания дат следует использовать функцию DATEDIFF().
...
Рейтинг: 0 / 0
02.07.2018, 10:01
    #39668188
Manat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос сгруппированный по разнице дат
Akina,
спасибо за замечание. я просто думал вычитание и есть разница в днях (от экселя такие мысли пришли)
...
Рейтинг: 0 / 0
02.07.2018, 10:08
    #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
02.07.2018, 12:38
    #39668258
Manat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос сгруппированный по разнице дат
Akina, все понял. спасибо
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запрос сгруппированный по разнице дат / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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