Форум: "Базы";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
ВнизСрочно нужна помощь с SQL запросом Найти похожие ветки
← →
RDA (2003-09-15 12:11) [0]Что здесь не правильно?
select count(distinct IKOD) as RECCOUNT from KVR
where
YEAR=:YEAR
and
KV=:KV
and
SYM=FALSE
Пишет ошибку
DBISAM Engine Error #11949 SQL error - Rigth parentheses expected after aggregate count function argument, instead found "IKOD" in source column expression.
← →
Vlad (2003-09-15 12:20) [1]Я не знаю что такое DBISAM, но навскидку ошибка тут: count(distinct IKOD)
правильнее было бы так:
select count(*) from (
select distinct IKOD from KVR
where
YEAR=:YEAR
and
KV=:KV
and
SYM=FALSE
)
← →
RDA (2003-09-15 12:27) [2]Не канает
DBISAM Engine Error #11949 SQL error - End of SELECT statement expected, instead found "IKOD"
← →
Johnmen (2003-09-15 12:41) [3]Запрос с т.з. синтаксиса в рамках стандарта верен.
Возможны какие-либо особенности реализации SQL в DBISAM...
← →
Nikolay M. (2003-09-15 12:47) [4]distinct(IKOD)
может быть?
И никаких пробелов после count & distinct
← →
RDA (2003-09-15 12:49) [5]Вот что есть в хелпе
The SQL SELECT statement is used to retrieve data from tables. You can use the SELECT statement to:
• Retrieve a single row, or part of a row, from a table, referred to as a singleton select.
• Retrieve multiple rows, or parts of rows, from a table.
• Retrieve related rows, or parts of rows, from a join of two or more tables.
Syntax
SELECT [DISTINCT | ALL] * | column
[AS correlation_name | correlation_name], [column...]
[INTO [MEMORY] destination_table]
FROM [MEMORY] table_reference [AS correlation_name | correlation_name]
[[[[INNER | [LEFT | RIGHT] OUTER JOIN] [MEMORY] table_reference
[AS correlation_name | correlation_name] ON join_condition]
[WHERE predicates]
[GROUP BY group_list]
[HAVING predicates]
[ORDER BY order_list [NOCASE]]
[TOP number_of_rows]
[WITH LOCKS]
[LANGUAGE language_string SORT sort_string]
[ENCRYPTED WITH password]
[NOJOINOPTIMIZE]
[UNION [ALL] [SELECT...]]
И по дистинкту
Use DISTINCT to limit the retrieved data to only distinct rows. The distinctness of rows is based on the combination of all of the columns in the SELECT clause columns list. DISTINCT can only be used with simple column types like string and integer; it cannot be used with complex column types like blob.
Поле IKOD строка в 10 символов.
← →
stone (2003-09-15 13:02) [6]select ПолеДляГруппировки, count(IKOD) as RECCOUNT from KVR
where
YEAR=:YEAR
and
KV=:KV
and
SYM=FALSE
GROUP BY ПолеДляГруппировки
← →
Johnmen (2003-09-15 13:10) [7]>Nikolay M. © (15.09.03 12:47)
>stone © (15.09.03 13:02)
Как я понял, это принципиально не то, что хочет автор...
← →
stone (2003-09-15 13:15) [8]
> Johnmen © (15.09.03 13:10)
Я конечно не телепат, но попытку употребления distinct я по-другому расшифровать не смог.
← →
Nikolay M. (2003-09-15 13:15) [9]
> Как я понял, это принципиально не то, что хочет автор...
?? А как тут можно понять по-другому?
Тем более в первом посте было черным по белому написано: не хватает закрывающей скобки после аргумента функции count.
Хотя, конечно, хотелось бы заслушать начальника транспортного цеха....
← →
Johnmen (2003-09-15 13:25) [10]>stone © (15.09.03 13:15) [8]
Так не надо быть телепатом :) Все видно в запросе автора : получить количество неповторяющихся значений IKOD.
>Nikolay M. © (15.09.03 13:15)
Я не знаю, на что там намекает DBISAM Engine со своей ошибкой, но ошибки НЕТ. По кр.мере, в рамках стандарта SQL92.
← →
Arm79 (2003-09-15 14:03) [11]? ? ?
DBISAM - это вроде бы ADO Jet не для Access, а для прочего(txt, xsl и тп), или я не прав? Тогда существует много ограничений для работы.
← →
Arm79 (2003-09-15 15:20) [12]А если так
select distinct count(IKOD)
from KVR
where
YEAR=:YEAR
and
KV=:KV
and
SYM=FALSE
← →
Johnmen (2003-09-15 15:25) [13]>Arm79 © (15.09.03 15:20)
>А если так...
А смысл ? Неповторяющиеся значения среди одного единственного ?
:)))
← →
Nikolay M. (2003-09-15 15:28) [14]
> Arm79 © (15.09.03 15:20) [12]
Будет выбрано только одно значение: count(*)
:)))
← →
Arm79 (2003-09-15 15:31) [15]Каюсь, ступил :-((
← →
Arm79 (2003-09-15 15:54) [16]
> Я не знаю что такое DBISAM, но навскидку ошибка тут: count(distinct
> IKOD)
> правильнее было бы так:
> select count(*) from (
> select distinct IKOD from KVR
> where
> YEAR=:YEAR
> and
> KV=:KV
> and
> SYM=FALSE
> )
У меня подобный код работает
select count(*)
from (select distinct [table.amount] from [table])
← →
stone (2003-09-15 15:58) [17]Приведенный автором код работоспособен. Вероятнее всего проблема в ограничениях DBISAM
← →
RDA (2003-09-15 16:20) [18]Не один из приведенных кодов под DBISAM не работает, не помог и визуальный построитель запросов от EMS он может только так
select distinct count(IKOD)
from KVR
where
YEAR=:YEAR
and
KV=:KV
and
SYM=FALSE
Но вообщем выкрутился.
Вопрос закрыт.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c