Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Кол-во записей или как сделать count (select * ...)?   Найти похожие ветки 

 
off   (2004-02-17 11:39) [0]

Доброго времени суток, уважаемые мастера. Передо мной стоит задача из книги покупок сосчитать какое колво клиентов закупалось в опред. период в опред. отделе. Для этого пишем нехитрый SQL запрос

Select nd.codenach from nachdec ND
where
(ND.codetypelgot = :codetypelgot)
and
(ND.frdate >= :frdate)
and
(ND.todate <= :todate)
group by ND.codenach

Врезультате получим 8 записей, но это я в ручную считаю, что 8, а как это сделать программно?


 
Reindeer Moss Eater   (2004-02-17 11:42) [1]

Врезультате получим 8 записей, но это я в ручную считаю, что 8, а как это сделать программно?

Result:=0;
while not eof do
begin
Inc(Result);
Next;
end;


 
panov   (2004-02-17 11:42) [2]

Select COUNT(*) from nachdec ND
where
(ND.codetypelgot = :codetypelgot)
and
(ND.frdate >= :frdate)
and
(ND.todate <= :todate)
group by ND.codenach


 
Reindeer Moss Eater   (2004-02-17 11:47) [3]

Select nd.codenach from nachdec ND
where
(ND.codetypelgot = :codetypelgot)
and
(ND.frdate >= :frdate)
and
(ND.todate <= :todate)
group by ND.codenach


 
off   (2004-02-17 11:47) [4]

re [2]:
Дело в том что человек мог совершать не одну покупку, немного поясню (ND.codetypelgot - отдел, ND.codenach - код покупателя)
А так как у каждого покупателя он свой, то в результате вылазят все теже 8 строчек с количеством купленного товара по каждому покупателю :-)


 
Reindeer Moss Eater   (2004-02-17 11:48) [5]

Select nd.codenach from nachdec ND
where
(ND.codetypelgot = :codetypelgot)
and
(ND.frdate >= :frdate)
and
(ND.todate <= :todate)
group by ND.codenach
Врезультате получим 8 записей, но это я в ручную считаю, что 8, а как это сделать программно?


Сильно сомневаюсь, что получим больше одной записи при таком запросе.


 
Карелин Артем   (2004-02-17 11:49) [6]

А нормально расписать что к чему в базе слабо?


 
Соловьев   (2004-02-17 11:59) [7]

если юзать FIBPlus , то там есть метод RecordCountFromSrv


 
off   (2004-02-17 12:03) [8]

to [6]
В общем то ничего интересного
frdate - дата начала закупок
todate - дата окончания закупок
codetypelgot - база, отдел (где произведена покупка)
codenach - заводится для каждой закуки клиента
codedec - заводится для каждого типа товара
Есть еще куча несущественных для данного вопроса полей типа суммы и количество товара


 
Exciter   (2004-02-17 12:09) [9]

Передо мной стоит задача из книги покупок сосчитать какое колво клиентов закупалось в опред. период в опред. отделе

см. panov

или группировку не по одному полю сделай.


 
Карелин Артем   (2004-02-17 12:09) [10]

Если codenach уникально для каждого клиента, а каждая строка означает одну покупку, то
Select codenach, count(codenach) from nachdec ND
where
(ND.codetypelgot = :codetypelgot)
and
(ND.frdate >= :frdate)
and
(ND.todate <= :todate)
group by ND.codenach


 
off   (2004-02-17 12:10) [11]

to [7]:
А что делать тем у кого FIBMinus и всем прочим?


 
Плохиш   (2004-02-17 12:13) [12]


Врезультате получим 8 записей, но это я в ручную считаю, что 8, а как это сделать программно?

Если надо получить число 8, то убери в [2] group by ...


 
Карелин Артем   (2004-02-17 12:15) [13]

Извиняюсь за прогон, не сразу вкурил в ТЗ.


 
off   (2004-02-17 12:16) [14]

to [10]:
В том то и дело, что не одна строка, а несколько может быть


 
Guest   (2004-02-17 12:26) [15]

select count(distinct codenach)
from ...
не подходит?


 
off   (2004-02-17 12:44) [16]

to [15]:
Моё почтение. Молодец. Видимо сегодня действительно понедельник и я совсем про DISTINCT забыл :-)


 
Guest   (2004-02-17 12:50) [17]

Бывает. Но только сегодня вторник :)


 
Карелин Артем   (2004-02-17 12:52) [18]

Guest (17.02.04 12:50) [17]
У меня сегодня первый рабочий день в неделе. Будем считать его понедельником. :)


 
Guest   (2004-02-17 12:54) [19]

Я не против :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.021 c
14-43858
race1
2004-01-23 13:32
2004.03.14
winamp multiuser


3-43273
richman
2004-02-12 18:41
2004.03.14
Как заставить программу автоматом вводить пароль в базу.


14-43765
хз
2004-02-13 10:48
2004.03.14
Хакеры опубликовали исходный код Windows в интернете


1-43501
s
2004-03-03 18:54
2004.03.14
Настройка MAXFILEHANDLE


1-43459
Adler
2004-03-01 00:35
2004.03.14
WordAppliation





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский