Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть 2 таблицы. В табл. #x находится информация о промежутке времени, когда товар(id) стоил дешевле. В табл. #y информация о продажах за каждый день. Нужно написать запрос, который бы выводил сумму qty за все промежутки времени, когда товар(id) стоил дешевле и сумму qty с равным промежутком времени за прошедшие даты и эти даты не должны пересекаться с датами из table #x, а если пересекаются тогда снова отнимать количество дней равное промежутку этих дат до тех пор пока ни одной из них не будет в table #x. Код: sql 1. 2. 3. 4. 5. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Т.е. с 11/01 по 13/01 это 3 дня, значит отнимаем это количество дней = с 08/01 по 10/01(этих дат нет в table #x); c 14/01 по 16/01 тоже 3 дня, отнимаем их = с 11/01 по 13/01(эти даты есть в table #x) значит нужно выбрать другие, которых нет в table #x, тогда с дат что получили с 11/01 по 13/01 отнимаем количество дней = с 08/01 по 10/01(этих дат нет в table #x); Результат: 6 - 12 10 - 12 11 - 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2018, 16:50 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
1. Не надо валить все в кучу. 2. Сначала сгенерируйте интервалы "с равным промежутком времени за прошедшие даты и эти даты не должны пересекаться с датами из table #x". 3. Ну а посчитать "сумму qty за все промежутки времени" - это тривиально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2018, 05:27 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
aleks222, Именно со 2ым пунктом и возникают трудности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2018, 06:36 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Эта задача не решается в sql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:00 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Посмотри на вот это: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Теоретически (а проверять тупо лениво) вернутся только последние по дате записи после выбрасывания из #y как записей, попадающих в #x, так и ещё такого же количества записей, в #x не попадающих. Если оно - дальше авось сгруппируешь самостоятельно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:13 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Asic, в SQL люди даже умудряются задачи о рюкзаке решать... просто ваша словесная постановка задачи не располагает к желанию поучаствовать в её решении... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:17 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Akina, при выполнении ошибка: Сообщение 164, уровень 15, состояние 1, строка 37 Each GROUP BY expression must contain at least one column that is not an outer reference. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:30 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Asicпри выполнении ошибка: Ну уберите GROUP BY вообще... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вот только вопрос... Вы показываете данные. В #x 3 записи общим чётом на 9 дней, в таблице #y 15 записей, из коих 9 ложатся в диапазоны из #x. Вы понимаете, что по Вашему алгоритму (выбросить из 15 записей 9 попадающих и ещё столько же) для вывода ни одной записи не останется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:04 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
Akina, Ничего не выводит этот запрос, а должно получиться 6 - 12 10 - 12 11 - 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:11 |
|
||
|
Помощь со сложным запросом
|
|||
|---|---|---|---|
|
#18+
AsicНичего не выводит этот запросЯ для кого пишу Akinaо Вашему алгоритму (выбросить из 15 записей 9 попадающих и ещё столько же) для вывода ни одной записи не останется??? Asicдолжно получиться 6 - 12 10 - 12 11 - 10Что означают эти числа? я не понимаю, откуда они взяты и как получены. Распишите весь свой алгоритм на показанных данных ПОЛНОСТЬЮ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:25 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39687198&tid=1689213]: |
0ms |
get settings: |
12ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 343ms |

| 0 / 0 |
