Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-18261
Max_
2003-09-15 11:07
2003.10.06
ClientDataSet и память?


1-18323
anonymous
2003-09-23 17:08
2003.10.06
эксепшены в D7


3-18219
ЭД
2003-09-17 12:06
2003.10.06
ClientDataSet.RefreshRecord не работает


1-18338
stkatch
2003-09-23 14:18
2003.10.06
Как узнать имя файла пакета?


1-18363
Alek Aaz
2003-09-21 12:46
2003.10.06
Не отображаются наследуемые методы и свойства.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский