Главная страница
    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.015 c
3-43313
orger
2004-02-17 10:46
2004.03.14
Индексные поля


8-43701
Hecz
2003-11-15 00:55
2004.03.14
canvas.pixels


8-43685
JB
2003-11-05 12:18
2004.03.14
Кривые Безье


14-43786
BALU1111
2004-02-18 17:17
2004.03.14
Борьба со спамом и новый способ выкачивания денег?


4-43940
prabbit
2004-01-07 21:28
2004.03.14
Не выходит передать нажатие клавиш...





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