|
Условие в запросе
|
|||
---|---|---|---|
#18+
Доброго времени суток. Сделал запрос, который возвращает мне общее количество чеков за определённый месяц. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Сейчас настала необходимость добавить условие диапазона чеков. Пытался добавить вот такое условие: Код: sql 1.
Но пишет, что в where нельзя использовать агр. функцию. в having если добавить, то будет считать уже всю сумму по всем чекам сразу. В каком месте и что нужно исправить(добавить)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:25 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучка, открой для себя having ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:32 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Павел ВоронцовПрогер_самоучка, открой для себя having Вы до конца прочитали стартовый пост ? Прогер_самоучка в having если добавить, то будет считать уже всю сумму по всем чекам сразу. В каком месте и что нужно исправить(добавить)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:35 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
> в having если добавить, то будет считать уже всю сумму по всем чекам сразу с чего вы взяли? суммы будут считаться согласно группировке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:37 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучка Код: sql 1. 2. 3.
Это вот что: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:38 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
daw> в having если добавить, то будет считать уже всю сумму по всем чекам сразу с чего вы взяли? суммы будут считаться согласно группировке. Я понимаю, что согласно группировке. Ещё бы и понять каким образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:47 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
iapПрогер_самоучка[/src]Это вот что: Код: sql 1.
Не совсем вас понял. Это вы спросили или поправили?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:49 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
> Я понимаю, что согласно группировке. Ещё бы и понять каким образом. то есть, что значит "каким"? ну выведите ее в select-листе: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
вот эта сумма и будет проверяться в having. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:54 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
daw> Я понимаю, что согласно группировке. Ещё бы и понять каким образом. то есть, что значит "каким"? ну выведите ее в select-листе: вот эта сумма и будет проверяться в having. Выводил я так в select. Поэтому и говорю, что будет считать сумму сразу всех чеков. Было вот так с добавлением having Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:00 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучкаdaw> Я понимаю, что согласно группировке. Ещё бы и понять каким образом. то есть, что значит "каким"? ну выведите ее в select-листе: вот эта сумма и будет проверяться в having. Выводил я так в select. Поэтому и говорю, что будет считать сумму сразу всех чеков. Было вот так с добавлением having Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
З.Ы. Исправленный вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:02 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
> count(distinct op.smid) as [Чеки] ааа, distinct. догадываюсь кажется. у вас join-ы "размножают" строки в op и суммы странные получаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:02 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
чтобы понятнее стало, вы уберите группировку и посмотрите, что выводится. а "как бороться?" - ну, в вашем случае можно эти join-ы через exists переписать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:05 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
daw> count(distinct op.smid) as [Чеки] ааа, distinct. догадываюсь кажется. у вас join-ы "размножают" строки в op и суммы странные получаются? Запредельные суммы получаются))) Количество чеков запрос выдаёт правильное. Вот как прописать сие условие, что на каждый чек, пока не соображу. Подозреваю, что эта "странная сумма" как раз и сумма сразу всех чеков. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:07 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
dawчтобы понятнее стало, вы уберите группировку и посмотрите, что выводится. а "как бороться?" - ну, в вашем случае можно эти join-ы через exists переписать.Добавил бы: уберите группировку и поставьте фильтр по какому-нибудь (может по очереди по разным) OP.SMID чтобы (на обозримом количестве данных) убедиться в отсутствии задваивания строк. Может быть, и от DISTINCT в COUNT удастся избавиться :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:59 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучкаiapпропущено... Это вот что: Код: sql 1.
Не совсем вас понял. Это вы спросили или поправили?)Заменил на эквивалент ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 20:28 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
iapЗаменил на эквивалент На самом деле это часть собирается в программе, поэтому там именно так :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 08:36 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучкаВыводил я так в select. Поэтому и говорю, что будет считать сумму сразу всех чеков. Было вот так с добавлением havingНе зная схему данных трудно угадывать, но скорей всего Вам нужно что-то типа Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 09:13 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучкаiapЗаменил на эквивалент На самом деле это часть собирается в программе, поэтому там именно так :)на самом деле и в программе это лучше заменить на (@code=-1 or code=@code) and (@f1=-1 or f1=@f1) :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 09:17 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Павел ВоронцовНе зная схему данных трудно угадывать+100500 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 09:23 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Павел ВоронцовПрогер_самоучкаВыводил я так в select. Поэтому и говорю, что будет считать сумму сразу всех чеков. Было вот так с добавлением havingНе зная схему данных трудно угадывать, но скорей всего Вам нужно что-то типа Код: 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.
Очень даже похоже. Только не пойму, почему ничего не возвращает. Внутренний запрос отрабатывает. А по внешнему почему-то нет. З.Ы. Под схемой данных вы подразумеваете структуры таблиц ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 10:19 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучкаОчень даже похоже. Только не пойму, почему ничего не возвращает. Внутренний запрос отрабатывает. А по внешнему почему-то нет. Разобрался вроде бы. Нужно было в конце в группировке указать колонку chks по которой группировка chks ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 10:24 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Доброго времени суток. Есть запрос, в котором есть условие Код: sql 1. 2.
Раньше этот запрос отрабатывал нормально. Сейчас выскакивает ошибка: Код: plaintext
Но, поля Code и F1 в базе имеют тип int. раньше стоял ms sql server 2000. Сейчас: Код: sql 1. 2. 3. 4.
Хотелось бы прояснения ситуации. Заранее благодарю за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2013, 14:05 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
Прогер_самоучка, тип полей тут вообще ни при чем, любое из этох двух вызовет ту же ошибку: Код: sql 1. 2.
но ответьте плиз, откуда такой огород, почему не подходит Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2013, 14:27 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
капец полный, вроде, выше говорилось, что это частный случай скрипта, генерирующегося автоматически ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2013, 14:31 |
|
Условие в запросе
|
|||
---|---|---|---|
#18+
а тип параметра какой? Скорее всего, что-то вроде этого: Код: sql 1. 2. 3. 4. 5. 6.
исправьте тип на int - ошибка уйдет ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2013, 14:31 |
|
|
start [/forum/topic.php?fid=46&tid=1706110]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 244ms |
total: | 529ms |
0 / 0 |