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

Вниз

SQL-запрос ???   Найти похожие ветки 

 
vicky ©   (2004-08-20 10:51) [0]

Подскажите плиз что надо добавить в запрос, который выдет число активированных карт каждого дилера, чтобы он выдавал еще число карт каждого номинала. Т.е. есть запрос:

SELECT D.name, count(C.idcard) AS CardsAmount
FROM cards AS C INNER JOIN dillers AS D ON D.id=C.numdiller
WHERE C.status="ИСПОЛЬЗОВАНА" And C.statuschange Is Not Null
GROUP BY D.name;

Выдает он данные типа:
Дилер1  3
Дилер2  8

где {3,8} общее число карт, а надо чтобы он это число разбивал по номиналу т.е. 3   1-5
                 2-10
             8   2-5
                 4-20
                 2-10  
(таблица cards:
idcard
seria
nominal
status
numdiller
statuschange)


 
Соловьев ©   (2004-08-20 10:55) [1]

групировать еще и по номиналу


 
vicky ©   (2004-08-20 11:14) [2]

Как ?
Если так:

SELECT D.name,  count(C.idcard) AS CardsAmount, C.nominal
FROM cards AS C INNER JOIN dillers AS D ON D.id=C.numdiller
WHERE C.status="ИСПОЛЬЗОВАНА" And C.statuschange Is Not Null
GROUP BY D.name, C.nominal;

то результирующая выборка данных:

name    CardsAmount   nominal
дилер1     2             5
дилер2     2             5

тогда как у дилера 2 2 номинала, например ...
???


 
Соловьев ©   (2004-08-20 11:16) [3]


> count(C.idcard)

count(C.nominal)


 
Sandman25 ©   (2004-08-20 11:18) [4]

count(*)


 
vicky ©   (2004-08-20 11:23) [5]


SELECT D.name,  count(C.idcard) AS CardsAmount, count(C.nominal) AS numNominal
FROM cards AS C INNER JOIN dillers AS D ON D.id=C.numdiller
WHERE C.status="ИСПОЛЬЗОВАНА" And C.statuschange Is Not Null
GROUP BY D.name, C.nominal;


не помогло... выставила у все активированных карт один номинал (5), а запрос выдает:
name    CardsAmount   NumNominal
дилер1     2             2
дилер2     2             2


 
vicky ©   (2004-08-20 11:28) [6]

SELECT D.name,  count(C.nominal) AS numNominal
FROM cards AS C INNER JOIN dillers AS D ON D.id=C.numdiller
WHERE C.status="ИСПОЛЬЗОВАНА" And C.statuschange Is Not Null
GROUP BY D.name, C.nominal;

Тоже ерунда получается :(((
name      NumNominal
дилер1     2            
дилер2     2


 
Sandman25 ©   (2004-08-20 11:28) [7]

SELECT D.name,  count(*) AS CardsAmount, C.nominal


 
vicky ©   (2004-08-20 11:50) [8]

Результат:
name                CardsAmount nominal
ПБОЮЛ Дилер1         1         5
ПБОЮЛ Дилер1         1          10
ПБОЮЛ Дилер2         1         5
ПБОЮЛ Дилер2         1         10

Thanx...А как теперь вывести в отчет, так чтобы имя дилера повторялось только один раз и суммировалось все-таки общее число карт каждого дилера, т.е. типа:
name                CardsAmount nominal
ПБОЮЛ Дилер1         2         5
                             10
ПБОЮЛ Дилер2         2         5
                             10
???


 
Соловьев ©   (2004-08-20 11:53) [9]

Девушка, ну надо хоть чуть-чуть подумать... ну нельзя же так.


 
vicky ©   (2004-08-20 12:13) [10]

А раз Вы знаете, Вам что трудно подсказать домохозяйке :))) которая плохо шарит в делфи ???


 
Sandman25 ©   (2004-08-20 12:16) [11]

[10] vicky ©   (20.08.04 12:13)

Данная задача принципиально отличается от предыдущей. И должна решаться не только запросом, но и средством получения отчетов.


 
Соловьев ©   (2004-08-20 12:16) [12]


> Вам что трудно подсказать домохозяйке :))) которая плохо
> шарит в делфи ???

нет, не трудно
А зачем домохозяйке шарить в делфи? причем про дилеров что-то :) Вы там что наркотиками торгуете?


 
vicky ©   (2004-08-20 12:24) [13]

2 Sandman25 © [11]

Отчет у меня выводится в Excel :

while not SQL.Eof do begin
   XLApp.WorkBooks[1].WorkSheets[1].Cells[11+i,2] := Fields[0].AsString;
   XLApp.WorkBooks[1].WorkSheets[1].Cells[11+i,4] := Fields[1].AsString;
   XLApp.WorkBooks[1].WorkSheets[1].Cells[11+i,5] := Fields[2].AsString;
   i:=i+1;
   Next;
end;


??? Но как устрагить повторы и суммировать обшее число на кадого дилера я по-прежнему не знаю :(((


 
vicky ©   (2004-08-20 12:37) [14]

2 Соловьев ©   (20.08.04 12:16) [12]
А если не трудно, так подскажите ...


 
Sandman25 ©   (2004-08-20 12:39) [15]

>Но как устрагить повторы

Неужели это не очевидно? Сравнив текущего дилера с предыдущим.



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

Текущий архив: 2004.09.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.062 c
3-1093119022
Страдалец
2004-08-22 00:10
2004.09.19
через ADO вставить в базу MS Access ссылку (hyperlink)


14-1093623426
Michael
2004-08-27 20:17
2004.09.19
Посоветуйте как лучше разбить диск на 80Гб


3-1092980124
Lika_d
2004-08-20 09:35
2004.09.19
Использование логики в создании вычисляемых полей


1-1094351281
bigfoot
2004-09-05 06:28
2004.09.19
Дата в реестре


1-1094461758
GriS
2004-09-06 13:09
2004.09.19
изменение http_referrer