|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста sql запрос для View. Задача состоит в том что нужно заменить NULL значение в колонке Price, сумму нужно перенести на нижние строки которые имеют значение NULL. исходные данные : Код: 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. 38. 39. 40. 41. 42. 43.
Код: sql 1. 2. 3. 4. 5.
Код: plaintext 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
версия Microsoft SQL Server 2012 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 20:27 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Igorz, Если ProductItemId - монотонно возрастает, то нет ничего проще: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Тормозить только будет, на больших объемах. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 21:10 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
uaggster, спасибо за быстрый ответ! Поправил название t.ProtuctItemId и работает прекрасно! но возможно ли построить конструкцию с left join? так как есть ограничение в использование cross apply? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 23:24 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Igorz, cross apply можно заменить на такой же корелированный подзапрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 23:49 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Можно и без подзапросов, но как оно по скорости будет надо смотреть. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2020, 00:13 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Igorz, кстати, если Price по всей таблице может быть null, то cross apply усечёт выборку, и тогда его лучше на outer apply заменить. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2020, 00:21 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Владислав Колосов, спасибо за подсказу. Будем разбератса. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2020, 00:21 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Igorz uaggster, спасибо за быстрый ответ! Поправил название t.ProtuctItemId и работает прекрасно! но возможно ли построить конструкцию с left join? так как есть ограничение в использование cross apply? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Order by t.ProductID, t.ProductItemID DESC Выделенное - лишнее, т.к. вверху есть Where t.ProductID=a.ProductID И да, конечно нужно outer apply. но возможно ли построить конструкцию с left join? Можно. Например так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Но, боюсь у него с производительностью тоже не фонтан будет. Хотя, на очень больших выборках, возможно, быстрее чем первый, т.к. в первом случае - всегда будет nested loop, а во втором случае LEFT JOIN может быть и hash и merge, даже принудительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2020, 09:50 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
Задача из курсача или экзамена ? Сама формулировка идиотская. В нормальном бизнесе такого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2020, 09:52 |
|
sql запрос для View заменить NULL значение
|
|||
---|---|---|---|
#18+
L_argo Задача из курсача или экзамена ? Сама формулировка идиотская. В нормальном бизнесе такого нет. На бухгалтерском языке это называется "протащить до конца" :-) И делается монотонным даблкликом на квадратике в правом нижнем углу в каждой ячейке с заполненной ценой в Эксель. Ну, или если бухгалтер - космически продвинут, то с формулой ЕПусто со ссылкой на предыдущую ячейку в соседнем столбце. :-)))). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2020, 15:08 |
|
|
start [/forum/topic.php?fid=46&msg=39912636&tid=1686664]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 144ms |
0 / 0 |