|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Добрый день. Задача: исключить из запроса все строки, где хотя-бы одна из колонок а1-а7 равняется определенному значению, а все остальные 0. Условие в where генерируется динамически, в зависимости от количества значений, которые нужно исключить. На практике колонок больше. Мое решение слишком медленное. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 15:04 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
pio777, если столбцы развернуть в строки, то можно будет проводить агрегацию как-то так Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 15:53 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Shakill, Простите, что не сообщил, но есть некоторые ограничения. Запрос формирует приложение, я могу только в where добавить свой and, cte и временные таблицы тоже не получится использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:01 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:03 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Glory Код: sql 1. 2. 3. 4.
Наверно, в SIGN надо ABS добавить? А то +1-1=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:08 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
iapНаверно, в SIGN надо ABS добавить? А то +1-1=0 +1 и -1 - это значения уже в 2х полях. А по условию задачи, только одно поле должно быть заполнено скорее уж так ABS(sign(a1)+sign(a2)+sign(a3)+sign(a4)+sign(a5)+sign(a6)+sign(a7)) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:11 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Glory, у автора формулировка "хотя бы одна из колонок равняется", то есть может быть и несколько, вплоть до всех, насколько я понял ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:13 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Shakillавтора формулировка "хотя бы одна из колонок равняется", то есть может быть и несколько, вплоть до всех, насколько я понял там 2 условия "одна из колонок а1-а7 равняется определенному значению, а все остальные 0" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:14 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Glory, там "хотя бы одна" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:15 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
ShakillGlory, там "хотя бы одна" И что неправильного ? шесть 0-лей плюс одно любое значения должны равняться заданному значению ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:17 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
GloryShakillGlory, там "хотя бы одна" И что неправильного ? шесть 0-лей плюс одно любое значения должны равняться заданному значению пять нулевых и два искомых тоже подходят в эту формулировку. семь искомых и отсутствие нулевых - тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:19 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
GloryiapНаверно, в SIGN надо ABS добавить? А то +1-1=0 +1 и -1 - это значения уже в 2х полях. А по условию задачи, только одно поле должно быть заполнено скорее уж так ABS(sign(a1)+sign(a2)+sign(a3)+sign(a4)+sign(a5)+sign(a6)+sign(a7)) Хотя для -1+1+1 таки нужен ABS в каждом sign ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:21 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Shakillпять нулевых и два искомых тоже подходят в эту формулировку. семь искомых и отсутствие нулевых - тоже "где хотя-бы одна из колонок а1-а7 равняется определенному значению, а все остальные 0" Это как при 2 искомых колонках "а все остальные 0" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:22 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
GloryShakillпять нулевых и два искомых тоже подходят в эту формулировку. семь искомых и отсутствие нулевых - тоже "где хотя-бы одна из колонок а1-а7 равняется определенному значению, а все остальные 0" Это как при 2 искомых колонках "а все остальные 0" ? ну я и говорю. если в строке в трех полях - единицы, а остальные четыре содержат ноль, то такую строку тоже надо исключить. посмотрите на фильтр у автора изначальный ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:26 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
если все значения a(i)>=0 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:31 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
Ну дороботайте чуть чуть Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:33 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
так ?если все значения a(i)>=0 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
нее, хрень на таком Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:38 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
Я такую, бяку наваял ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:38 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
angel_zar, Хотя, хрень, все 0ли попадают ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:40 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
незнаю, сумеет ли ТС "запихнуть" это в условие, но так - не врёт Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 16:53 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
pio777, а какой результат должен получиться на Ваших данных? И как понять " хотя-бы одна из колонок а1-а7 равняется определенному значению, а все остальные 0" Жирные слова поясните, пожалуйста. Это что же, исключить записи, в которых некоторые колонки равны друг другу и не равны 0, а остальные - 0? Некоторые колонки равны заданному снаружи значению, а остальные - 0? Одна-единственная колонка - не ноль, остальные - ноль? Зачем в примере заданы 1 и 2? Как это соответствует сформулированному (криво и невразумительно) условию? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 17:12 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
iappio777, а какой результат должен получиться на Ваших данных? в стартовом посте, есть запрос ТС, результат которого, его устраивает, его не устраивает скорость ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 17:15 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
`iappio777, а какой результат должен получиться на Ваших данных? в стартовом посте, есть запрос ТС, результат которого, его устраивает, его не устраивает скорость Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 17:26 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
iap, Если вы выполните мой запрос, то получите то, что должно быть. Хотя-бы одна и колонок значит, что от 1, 2, 3,... или все 7. Значение берется с приложения, в зависимости от того, что выберет пользователь. Т.е. если я выбрал 1 то выпадают строки: 1,0,0,0,0,0,0 1,1,0,0,0,0,0 1,1,1,0,0,0,0 1,1,1,1,0,0,0 1,1,1,1,1,0,0 1,1,1,1,1,1,0 1,1,1,1,1,1,1 0,1,0,0,0,0,0 0,0,1,0,0,0,0 ................. В приложении можно выбрать несколько значений. Пример для исключение 1 и 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 17:32 |
|
Исключение строк из запроса.
|
|||
---|---|---|---|
#18+
тоже вариант подкину:) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2013, 17:34 |
|
|
start [/forum/topic.php?fid=46&msg=38219190&tid=1707480]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 256ms |
0 / 0 |