Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Кол-во записей или как сделать 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.036 c
1-43662
DDA
2004-03-01 22:25
2004.03.14
RDTSC


1-43502
sucer
2004-02-29 06:37
2004.03.14
Помогите с Pchar


11-43418
iddqd
2003-06-25 12:42
2004.03.14
Битая ссылка на KOL_ERR v4.0.93


1-43548
ser_ega
2004-02-25 18:46
2004.03.14
Взаимодействие прог


1-43672
Тимур Айратович
2004-03-01 19:06
2004.03.14
Генератор .dbf из текстового файла