Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c