|
|
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, новичку: Надо получить след. данные (количество записей): SINTRANC=<name>, и диапазон STEL_A ( 4732, 4733 ... и т. д. до 4738) и SINTRANC=<name>, и диапазон STEL_A ( 47392, 47393 ... и т. д. до 47397) т. е.,значения SINTRANC=<name> одинаковые, а диапазон STEL_A разный. Выполняю запрос: Код: 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. в текстовом файле пропадает просто последняя строка, но начинает ругаться: "INVALID COLUMN REFERNCE" В чем грабли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:00:22 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Кому нужна твоя писанина не Delphi ?! Приведи SQL-запрос в нормальном виде . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:03:39 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Ну ты монстр... напиши просто в sql! в таком виде без поллитры не разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:05:08 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Запрос: Select SINTRANC, Count(NDURATION) as nall From AMA Where (SSOURCE=1) and (dbegdate between ? and ?) AND ( ( SINTRANC=? AND ( (STEL_A Like "4737911%") OR (STEL_A Like "4737912%") OR (STEL_A Like "4737913%") OR (STEL_A Like "4737914%") OR (STEL_A Like "4737915%") OR (STEL_A Like "4737916%")) ) OR ( SINTRANC=? AND ( (STEL_A Like "473792%") OR (STEL_A Like "473793%") OR (STEL_A Like "473794%") OR (STEL_A Like "473795%")) ) ) group by SINTRANC віводит, вот тоьлко данніе суммирует, а надо для каждогго случая отдельно вівести рез-т, если сделать Select SINTRANC, Count(NDURATION) as nall From AMA Where (SSOURCE=1) and (dbegdate between ? and ?) AND ( ( SINTRANC=? AND ( (STEL_A Like "4737911%") OR (STEL_A Like "4737912%") OR (STEL_A Like "4737913%") OR (STEL_A Like "4737914%") OR (STEL_A Like "4737915%") OR (STEL_A Like "4737916%")) ) OR ( SINTRANC=? AND ( (STEL_A Like "473792%") OR (STEL_A Like "473793%") OR (STEL_A Like "473794%") OR (STEL_A Like "473795%")) ) ) говорит ,что INVALID COLUMN REFERENCE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:07:25 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Я тупею и тупею... НиКуя не понял я... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:09:26 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Group by ведь служит, чтобы отбросить повторяющиес рез-ты для одиноковых значений, и прото суммирует этот самый результат, а надо для каждого случая отдельно получить кол-во записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:11:53 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Ihorнадо для каждого случая отдельно получить кол-во записей Переведи мне, будь другом. Не понимаю я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:15:58 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Group by не суммирует, а выполняет аггрегатную ф-цию (max, avg, count и.т.п.) так что если тебе надо: Ihorдля каждого случая отдельно получить кол-во записей то какраз надо группировать... или я тоже ниче не понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:17:46 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Сильно подозреваю, что ты не хочешь в Delphi - отладчике посмотреть текст результирующего запроса после того, как ты "убрал" group by Код: plaintext Может, ты просто в строчке Код: plaintext в качестве значения Код: plaintext Перед строкой Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:19:31 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Коллеги, при приведении дельфевого кода можно использовать [SRC delphi][/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:22:04 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
2 mv: да нет, все логично, ругается на Count() без использования группировки... только непонятно чего автор хочет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:22:20 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
IBQuery1.SQL.Text: 'Select SINTRANC, Count(NDURATION) as nall From AMA' ' Where (SSOURCE=1)' ' and (dbegdate between :date and :date1) ' ' AND (' ' ( SINTRANC=:sint ' 'AND (' ' (STEL_A Like "4737911%") OR' ' (STEL_A Like "4737912%") OR' ' (STEL_A Like "4737913%") OR' ' (STEL_A Like "4737914%") OR' ' (STEL_A Like "4737915%") OR' ' (STEL_A Like "4737916%")) )' ' OR ' ' ( SINTRANC=:sint ' 'AND (' ' (STEL_A Like "473792%") OR' ' (STEL_A Like "473793%") OR' ' (STEL_A Like "473794%") OR' ' (STEL_A Like "473795%")) )' ') ' 'group by SINTRANC' SINT - одно и то же значение, вот только STEL_A два случая: 1) 4737911-4737916 и 2) 473792-473795 В таком варианте запроса оно эти результаты складывает, а надо получить результаты отдельно На запрос IBQuery1.SQL.Text: 'Select SINTRANC, Count(NDURATION) as nall From AMA' ' Where (SSOURCE=1)' ' and (dbegdate between :date and :date1) ' ' AND (' ' ( SINTRANC=:sint ' 'AND (' ' (STEL_A Like "4737911%") OR' ' (STEL_A Like "4737912%") OR' ' (STEL_A Like "4737913%") OR' ' (STEL_A Like "4737914%") OR' ' (STEL_A Like "4737915%") OR' ' (STEL_A Like "4737916%")) )' ' OR ' ' ( SINTRANC=:sint ' 'AND (' ' (STEL_A Like "473792%") OR' ' (STEL_A Like "473793%") OR' ' (STEL_A Like "473794%") OR' ' (STEL_A Like "473795%")) )' ') ' т. е, попросту убрал строку 'group by SINTRANC' пишет:INVALID COLUMN REFERENCE :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:30:07 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Zandr2 mv: да нет, все логично, ругается на Count() без использования группировки... только непонятно чего автор хочет.... Надо результаты получить в виде: SINTRANC=<name>, nall=204 (дипазаон 4737911-4737916) и SINTRANC=<name>, nall=1029 (дипазаон 473792-473795) , а оно эти рез-ты складывает: SINTRANC=<name>, nall=1233 Вот в этом соль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:32:52 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
не понимаю... если есть таблица Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3 Иванов 2 петров 1 Сидоров в чем проблемма? кто кого складывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:44:45 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Как ты сервер запросил, так он тебе и вернул. Телепатией он не обладает. Делай 2 подзапроса и объединяй их по UNION ALL. И прекрати постить Дельфийский код. Он нафик никому не нужен. Нужны только сами SQL-запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 13:45:54 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Ну, без group тут никак. Делай так: Select case when STEL_A between '4737911' and '4737916' then ''4737911-4737916' when STEL_A between '4737917' and '4737960' then ''4737917-4737960' else 'Прочие' end Variants, Count(NDURATION) nall from AMA ... ... group by Select case when STEL_A between '4737911' and '4737916' then ''4737911-4737916' when STEL_A between '4737917' and '4737960' then ''4737917-4737960' else 'Прочие' end -------------------- Ура FireBird 1.5! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 14:21:42 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Извини: Ну, без group тут никак. Делай так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 14:23:08 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
mvИзвини: Ну, без group тут никак. Делай так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Ругается на when... и дальше не идет :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:26:42 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Точка с запятой пропущена. Но я бы сделал через UNION ALL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:29:06 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
Ну, какой ты, прямо, не знаю какой! Я, прежде чем тебе предложить, проверил, между прочим... Все работет. Какой сервер? Как ругается? Ты ОТЛАЖИВАЛ запрос перед тем, как разместить его в программе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:31:40 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
2 Проходящему: Ничего там не пропущено. Вот пример, только что проверил (таблица Bank, имеется поле bank_id): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:34:47 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
mvНу, какой ты, прямо, не знаю какой! Я, прежде чем тебе предложить, проверил, между прочим... Все работет. Какой сервер? Как ругается? Ты ОТЛАЖИВАЛ запрос перед тем, как разместить его в программе? Отлаживал. Может, что-то напутал в синтаксисе? (create view new_view as select case when ama.nid between 1 and 5 then '1-5' when ama.nid between 6 and 99 then '6-99' else 'Prochie' end variant, count(*) from ama group by case when ama.nid between 1 and 5 then '1-5' when ama.nid between 6 and 99 then '6-99' else 'Prochie' end ) Сервер FireBird 1.0, ругается Token unknown - line X, char Y. when. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:46:41 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
У FireBird 1.0 нет CASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:50:48 |
|
||
|
В запросе убираю group by - и начинает ругаться :-(
|
|||
|---|---|---|---|
|
#18+
к сожалению, 1.0 не умеет case :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 16:52:21 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32577985&tid=1578354]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
215ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 560ms |

| 0 / 0 |
