|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Есть такая задача (не студент, просто нашел): Код: 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. 30. 31. 32. 33. 34. 35. 36. 37.
Надо одним запросом выбрать все записи из таблицы @products и размеры из SizeRanges1, если нет в SizeRanges1 тогда из SizeRanges2, если и там нет, то написать 'XEZ'. Например, так я выбрал продукты и размеры из @SizeRanges1: select * from @Products p inner join @SizeRanges1 n on p.Size between n.LimL1 and n.LimU1 Но вот как одним запросом такое сделать для всех? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:14 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Нифига не понял, что мешает использовать два раза Left join, а потом отфильтровать пустышки Или обычный Union хоть по двум результатам, хоть запрос по результату union ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:33 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
godsql Нифига не понял, что мешает использовать два раза Left join, а потом отфильтровать пустышки Чисто по-человечески я понимаю, как делать, но в том и вопрос: как сделать всё одним запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:35 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Это и будет "одним запросом". Или что имеется ввиду? Одно слово "select"? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:37 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
godsql Это и будет "одним запросом". Или что имеется ввиду? Одно слово "select"? Нет, не одно слово селект, естественно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:41 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
там все-таки пересекаются диапазоны. Тогда ID таблицы нужно использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 18:58 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
godsql Самый простой способ Код: sql 1. 2. 3. 4. 5. 6.
name size cat cond created (Отсутствует имя столбца) Product1 20 Phone1 OK 2022-02-15 18:56:50.033 Малый Product1 20 Phone1 OK 2022-02-15 18:56:50.033 Малый Product1 20 Phone1 OK 2022-02-15 18:56:50.033 Малый Product2 400 Note2 OKOK 2022-02-15 18:56:50.033 Эмка Product3 255 Note OK 2022-02-15 18:56:50.033 Элька Product4 385 Note OK 2022-02-15 18:56:50.033 Эмка Product5 420 Note SOSO 2022-02-15 18:56:50.033 Эмка Product5 420 Note OK 2022-02-15 18:56:50.033 Эмка Product7 8800 No OK 2022-02-15 18:56:50.033 XEZ Я вот такое еще накрутил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:01 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
не заметил пересечений. чуть по-позже напишу ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:04 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
я извиняюсь, а зачем все это? м.б. я чего-то не понимаю, и вам нужен какой-то другой результат? приложите ожидаемый выход а так же, что ожидается при size = 410 Ролг Хупин godsql Самый простой способ Код: sql 1. 2. 3. 4. 5. 6.
name size cat cond created (Отсутствует имя столбца) Product1 20 Phone1 OK 2022-02-15 18:56:50.033 Малый Product1 20 Phone1 OK 2022-02-15 18:56:50.033 Малый Product1 20 Phone1 OK 2022-02-15 18:56:50.033 Малый Product2 400 Note2 OKOK 2022-02-15 18:56:50.033 Эмка Product3 255 Note OK 2022-02-15 18:56:50.033 Элька Product4 385 Note OK 2022-02-15 18:56:50.033 Эмка Product5 420 Note SOSO 2022-02-15 18:56:50.033 Эмка Product5 420 Note OK 2022-02-15 18:56:50.033 Эмка Product7 8800 No OK 2022-02-15 18:56:50.033 XEZ Я вот такое еще накрутил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:08 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Ну, как-то так, если не думать особо :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:31 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Ролг Хупин как одним запросом такое сделать для всех? Не, а где эталонный (требуемый) результат для этих данных-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:37 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=ddf757a30441a25e5be6f469c09574fa ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:44 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Akina, DISTINCT лишний ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 19:54 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Akina Ролг Хупин как одним запросом такое сделать для всех? Не, а где эталонный (требуемый) результат для этих данных-то? Эталона нет, но там интуитивно понятно, что должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 20:09 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Ролг Хупин, ну вот вам дали те 2 варианта решения, о которых я говорил в самом начале. Результат-то похожий? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 20:30 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
godsql Ролг Хупин, ну вот вам дали те 2 варианта решения, о которых я говорил в самом начале. Результат-то похожий? да, нет предела совершенству ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 21:43 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
godsql DISTINCT лишний Может, и лишний, а может и нет. Я не в курсе. Автор же считает, что "там интуитивно понятно, что должно быть" - вот пусть, если надо, интуитивно и убирает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 22:46 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Как можно простым человеческим фзыком объяснить, какой из запросов чем лучше? Я как собака, какой-то лучше, но словами объяснить не могу Из приведенных выше: -- 1 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
--2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
--3 Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 09:27 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Третий лучче - он короче. В 99% случаев - этот критерий (чем короче и проще - тем лучше ) правильный. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 10:54 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 10:56 |
|
Как сделать одним запросом?
|
|||
---|---|---|---|
#18+
aleks222 Третий лучче - он короче. В 99% случаев - этот критерий (чем короче и проще - тем лучше ) правильный. тоже так думаю, но хотел о других критериях почитать, от других юзеров. Скажем, с точки зрения производительности, ясно, что не на таких данных, но теоретически ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 11:55 |
|
|
Start [/forum/topic.php?fid=46&msg=40134335&tid=1683828]: |
0ms |
get settings: |
98ms |
get forum list: |
11ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
1ms |
get page messages: |
871ms |
get tp. blocked users: |
0ms |
others: | 12ms |
total: | 1067ms |
0 / 0 |