Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1093926113
Fktrc
2004-08-31 08:21
2004.09.19
Результат обработки сообщения


1-1094114684
UserUserov
2004-09-02 12:44
2004.09.19
TProgressBar - Считывание файла


1-1094413987
den.is
2004-09-05 23:53
2004.09.19
Запуск проги и сразу автоматичесое завершение, как?


14-1092068335
Black_phoenix
2004-08-09 20:18
2004.09.19
Проблема программного обеспечения в компьютерных клубах


1-1094221622
hamster
2004-09-03 18:27
2004.09.19
CRC32





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