Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.024 c
1-43553
Image
2004-02-27 19:09
2004.03.14
Hello all !!! Как извлечь JPEG картинку из TStream и


7-43930
CC
2003-12-24 15:21
2004.03.14
сканирование рисунка


14-43825
тихий вовочка
2004-02-22 14:09
2004.03.14
Проверка наличия DLL


14-43880
Добрыня
2004-02-19 18:09
2004.03.14
лицензирование


7-43927
Mihin
2003-12-25 08:29
2004.03.14
Печать в текстовом режиме




   Наверх