|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
Здравствуйте. Не совсем понимаю как дополнить мой запрос логическим условием. Есть 2 таблицы: описание счетчиков, показания счетчиков. id descr foreign_id20 счетчик 1 21 счетчик 2 2424 счетчик 3 id DateTime pow20 2017-02-14 18:59:07.000 23305.221 2017-02-14 18:59:07.000 31051.924 2017-02-14 18:59:07.000 60832.3 и мой запрос, который считает значение на начало дня, на конец дня и разницу между началом и концом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Результат запроса: id first_date first_value last_date last_value sum20 2017-02-14 18:59:07 23305.2 2017-02-14 23:00:01 23367.1 61.921 2017-02-14 18:59:07 31051.9 2017-02-14 23:00:01 31110.4 58.524 2017-02-14 18:59:07 60832.3 2017-02-14 23:00:01 60911.4 79.1 Мне нужно добавить условие, что если из таблицы описания счетчиков для определенного id есть значение foreign_id, то мне необходимо делать разницу не между показаниями счетчиков с id, а разницу между показаниями foreign_id Прошу помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 23:24 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot Код: sql 1.
Одно только ЭТО отшибает фсякое желание. Чо над сервером то издеваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 06:45 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 07:03 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 artgot Код: sql 1.
Одно только ЭТО отшибает фсякое желание. Чо над сервером то издеваться? Подскажите что не так в этом выражении? это кусок запроса из отчёта, где пользователь может делать выборку по датам. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 08:59 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot, Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
И еще, так ли важно называть поля "datetime" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 09:25 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot aleks222 пропущено... Одно только ЭТО отшибает фсякое желание. Чо над сервером то издеваться? Подскажите что не так в этом выражении? это кусок запроса из отчёта, где пользователь может делать выборку по датам. Индексы отдыхают, а сервер работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 15:46 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 artgot пропущено... Подскажите что не так в этом выражении? это кусок запроса из отчёта, где пользователь может делать выборку по датам. Индексы отдыхают, а сервер работает. Как тогда правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:33 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot Как тогда правильно? Вам же aleks222 написал как надо. А Oleg_SQL еще и разжевал. Ваше Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 18:23 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Здравствуйте. Ещё 2 вопроса: 1. как добавить в результирующую таблицу значение pow не от foreign_id, а от id, т.е. чтобы разница была как написано, а first_value и last_value от оригинального id. 2. возможно ли, выводить pow и разницу оригинального id, если в этот день не было показаний foreign_id. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 15:22 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 11:25 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Спасибо, но не выводит строки, если в этом дне нет записи с foreign_id, может ли запрос возвращать с реальными значениями, если в этот день нет записи с foreign_id? Ещё вопрос, посмотрел по времени выполнения, разница по сравнению с оригинальным запросом по времени выполнения почти в 2 раза, может имеет смысл сделать хранимую процедуру для заполнения значений, чем нагружать отчеты? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 01:54 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
Извини, дарагой, мне уже наскучило тривиальные вещи писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 10:28 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222, С этим разобрался, всё понял. Могу с Вами лично пообщаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 01:21 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot aleks222, С этим разобрался, всё понял. Могу с Вами лично пообщаться? Мне нечего скрывать от народа. Пиши здесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 06:14 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222, мне надо "допилить" отчеты (всего 3шт), есть замечания, типа вот этих, которые надо закрыть. Можем договориться с вами на консультации по TeamViewer, например, или закончить мои отчеты (думаю это не лучший вариант, чтобы во все нюансы не погружаться) на финансовой основе? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 10:29 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot aleks222, мне надо "допилить" отчеты (всего 3шт), есть замечания, типа вот этих, которые надо закрыть. Можем договориться с вами на консультации по TeamViewer, например, или закончить мои отчеты (думаю это не лучший вариант, чтобы во все нюансы не погружаться) на финансовой основе? Не, я на коммерческой основе не консультирую. Этой фигни мне на работе хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 11:17 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222, Понял , буду благодарен если поможете "точечно". Как вот это условие: where '20170214'<= [datetime] and [datetime] < '20170215' преобразовать если мне надо несколько дней учитывать (например 14, 26, 28). У меня было вот так: where day(datetime) in (14, 26, 28) Но сейчас это условие не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 12:08 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot, заведи через with таблицу с датами и джойн на неё. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 12:24 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot aleks222, Понял , буду благодарен если поможете "точечно". Как вот это условие: where '20170214'<= [datetime] and [datetime] < '20170215' преобразовать если мне надо несколько дней учитывать (например 14, 26, 28). У меня было вот так: where day(datetime) in (14, 26, 28) Но сейчас это условие не работает. Код: sql 1. 2. 3. 4.
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 13:34 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 artgot aleks222, Понял , буду благодарен если поможете "точечно". Как вот это условие: where '20170214'<= [datetime] and [datetime] < '20170215' преобразовать если мне надо несколько дней учитывать (например 14, 26, 28). У меня было вот так: where day(datetime) in (14, 26, 28) Но сейчас это условие не работает. Код: sql 1. 2. 3. 4.
Код: sql 1.
Извините, я не понимаю, как эту конструкцию вставить сюда: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2020, 15:51 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot aleks222 пропущено... Код: sql 1. 2. 3. 4.
Код: sql 1.
Извините, я не понимаю, как эту конструкцию вставить сюда: Код: sql 1. 2. 3.
Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2020, 17:20 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 artgot пропущено... Извините, я не понимаю, как эту конструкцию вставить сюда: Код: sql 1. 2. 3.
Код: sql 1. 2. 3. 4. 5. 6. 7.
Я так понимаю, здесь должно быть select * from @dts as x where x.dt = m.datetime Но так возвращает пустой запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 00:13 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
artgot Но так возвращает пустой запрос. 1. У тя даты "с секундами" в таблице? Код: sql 1. 2. 3. 4. 5. 6. 7.
2. Даты то есть ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 18:48 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
Это ж фсе тупо и незатейливо проверяется Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 18:54 |
|
добавить условие в сложный join
|
|||
---|---|---|---|
#18+
aleks222 Чо над сервером то издеваться? Это, скорее всего, просто, сгенерированный запрос, где вместо скалярных значений может быть и список (например, в зависимости от выбора значений пользователем). Кстати, план этого запроса идентичен плану запроса с обычным сравнением. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 20:45 |
|
|
start [/forum/topic.php?fid=46&msg=40006435&tid=1685454]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 165ms |
0 / 0 |