Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выполнимо ли такое условие через jeft join? Если нет, то подскажите как можно сделать.
|
|||
|---|---|---|---|
|
#18+
Добрый день, есть такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. На выходе примерно такой результат: date oid cycle2019-01-19 05:52:17.880 E0472205-8C90 02019-03-06 09:53:22.213 0ADA876A-4C54 902019-03-06 09:52:07.517 B8BBC8B6-F36F 201 Теперь же к этому запросу нужно добавить столбец в котором был бы null или id из database 5. Например database 5 as DA, таблица выглядит так: id oid start endC5AA79EB-B13F E0472205-8C90 2019-03-06 08:00:00.000 2019-03-06 09:00:00.000A1B34983-5BDC E0472205-8C90 2019-03-06 07:00:00.000 2019-03-06 07:30:00.000F689F88A-2E2C 0ADA876A-4C54 2019-03-06 11:00:00.000 null3B47ECD5-EDAF 0ADA876A-4C54 2019-03-06 07:00:00.000 2019-03-06 09:30:00.000A8FD597B-4B45 B8BBC8B6-F36F 2018-02-01 07:00:00.000 null Условие выбора из этой таблицы такое: 1) CON.OID = DA.oid (то есть oid совпадает с предыдущим запросом) 2) сначала выбираем данные за промежуток времени DA.start between dateadd(hour, 7, cast(cast(getdate() as date) as datetime)) and dateadd(hour, 19, cast(cast(getdate() as date) as datetime)) .Выбираем только одну строку ТОП 1, где order by DA.start desc. Дальше смотри равно ли DA.end null. 3)Если там не null, но данные за этот промежуток времени есть, запрос вернет null. Если же не null то вернуть DA.id 4)Если же за промежуток времени данные не нашлись, ищем данные без between. Просто ТОП 1, где order by DA.start desc. Дальше смотри равно ли DA.end null. И повторяем третий пункт. Но если данных нет тоже вернуть null. Дополненный результат выборки из пятой таблицы, с этими условиями будет такой: date oid cycle downtime2019-01-19 05:52:17.880 E0472205-8C90 0 null2019-03-06 09:53:22.213 0ADA876A-4C54 90 F689F88A-2E2C2019-03-06 09:52:07.517 B8BBC8B6-F36F 201 A8FD597B-4B45 Так вообще можно сделать, или не получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 10:29 |
|
||
|
Выполнимо ли такое условие через jeft join? Если нет, то подскажите как можно сделать.
|
|||
|---|---|---|---|
|
#18+
Трети пункт опечатка: 3)Если DA.end не null , но данные за этот промежуток времени есть, запрос вернет null. Если же DA.end null то вернуть DA.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 10:33 |
|
||
|
Выполнимо ли такое условие через jeft join? Если нет, то подскажите как можно сделать.
|
|||
|---|---|---|---|
|
#18+
Начал как то так, верно ли? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 11:06 |
|
||
|
Выполнимо ли такое условие через jeft join? Если нет, то подскажите как можно сделать.
|
|||
|---|---|---|---|
|
#18+
Без 4 пункта вот так работает: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Подскажите пожалуйста как сюда добавить четвертое условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 11:27 |
|
||
|
Выполнимо ли такое условие через jeft join? Если нет, то подскажите как можно сделать.
|
|||
|---|---|---|---|
|
#18+
Hopfen_Artur, условие where CON.IP = '1.2.3.4' для правой таблицы LEFT JOIN отбрасывает все строки с CON.OID IS NULL, которые порождаются LEFT JOINом. Можно перенести условие в ON. Можно написать JOIN вместо LEFT JOIN, раз он на самом деле не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39782817&tid=1688176]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 298ms |
| total: | 452ms |

| 0 / 0 |
