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

Вниз

Запрос в несколько проходов   Найти похожие ветки 

 
BBCHa ©   (2006-02-01 10:03) [0]

Друзья поможите плз.

Есть табличка с полями: Дата, Клиент, Статус
Статус может быть 1 или 2 или 3
На выходе нужнол получить табличку с полями: Месяц, Клиент, Кол-во статусов=1, Кол-во статусов=2, Кол-во статусов=3
Всего пять столбцов.

Посдкажи те плз, можно ли это вообще реализовать??? И как?:)

Заранее благодарен.


 
msguns ©   (2006-02-01 10:15) [1]

>можно ли это вообще реализовать???

легко

>И как?

- Одним "хитрым" запросом
- Несколькими запросами и одной временной таблицей
- Все замутить на клиенте, "перебрав" все записи таблицы в цикле и заполнив, например, TStringGrid или CDS+DBGrid "нужного" вида
- Засобачить в акцесе макрос и запускать его из приложения
- Вырвать из левой ноздри три волоса, дунуть-плюнуть на них, сказать "карабарас", повернуться на север и три раза поклониться ;))


 
DELORAC ©   (2006-02-01 10:51) [2]

А что, у студентов сессия опять началась?
Самому подумать влом?
Вместо вопроса написал бы лучше запрос...
Вот пример для Oracle, подозреваю что у тебя какой-нибудь MS SQL или MySQL, так что переводи сам...

select
   to_number(substr(to_char(Dat,"dd.mm.yyyy"),4,2)) month,
   Client,
   sum(Decode(cl_status,1,cl_status,0)) cl_status_1,
   sum(Decode(cl_status,2,cl_status,0)) cl_status_2,
   sum(Decode(cl_status,3,cl_status,0)) cl_status_3
from
   Table
group by
   to_number(substr(to_char(Dat,"dd.mm.yyyy"),4,2)),
   Client</CODE


 
msguns ©   (2006-02-01 11:03) [3]

>DELORAC ©   (01.02.06 10:51) [2]
>Вот пример для Oracle, подозреваю что у тебя какой-нибудь MS SQL или MySQL

Зачем подозревать, если можно прочитать ? Акцес у него.
Судя по вопросу, "перевести" твой запрос он будет не в состоянии ;)


 
BBCHa ©   (2006-02-01 12:15) [4]

Большое спасибо, друзья, за помощь и поддержку.

Студенты и сессия тут не при чем, г-н DELORAC, если бы самому было думать влом я бы этим и не занимался. Тем не менее спасибо за помощь.

Г-н msguns, не судя по вопросу перевести запрос я смог, а Вам рекомендую - если нет конкретного ответа на вопрос, лучше помолчать, внушительнее смотрится.

Все такие умные... жаль подарить нечего и патроны кончились...


 
msguns ©   (2006-02-01 12:33) [5]

>BBCHa ©   (01.02.06 12:15) [4]
>Г-н msguns, не судя по вопросу перевести запрос я смог, а Вам рекомендую - если нет конкретного ответа на вопрос, лучше помолчать, внушительнее смотрится.

 Я дал 4 (четыре) конкретных ответа на заданный вопрос
 Вам рекомендую вопросы задавать четко и ясно, чтобы у отвечающих не создавалось впечатления неясности либо двойственности, либо не задавать вообще - не так по-идиотски будете смотреться.


 
Кщд ©   (2006-02-01 12:38) [6]

substr(to_char(Dat,"dd.mm.yyyy"),4,2) != to_char(Dat, "MM") ?
и зачем to_number?
и не sum, а count


 
evvcom ©   (2006-02-01 14:09) [7]


> На выходе нужнол получить табличку с полями: Месяц, Клиент,

А год что? Не интересует?

> to_number(substr(to_char(Dat,"dd.mm.yyyy"),4,2)) month,

Еще Trunc имеется в оракле.


 
DELORAC ©   (2006-02-01 17:11) [8]


>  [6] Кщд

1. to_number - чтобы был номер, а не строка, мало ли, что там понадобиться
2. конечно же count, как-то не заметил, что набрал...
------------------

>  [7] evvcom ©   (01.02.06 14:09)

Упсс... Конечно же еще и Trunc:
to_number(substr(to_char(Trunc(Dat),"dd.mm.yyyy"),4,2)) month,
;-))


 
evvcom ©   (2006-02-02 09:13) [9]


> to_number(substr(to_char(Trunc(Dat),"dd.mm.yyyy"),4,2))
> month,

Здесь Trunc лишний. Если все же через ж. делать, то так проще:
to_number(to_char(Dat,"mm"))

Но скорее всего автору также нужен и год, хотя он может и не догадывается об этом. Тогда достаточно просто
select Trunc(Dat, "MONTH") from ..., а если отображать нужно только месяц, то это уже настраивается на клиенте.



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

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

Наверх




Память: 0.49 MB
Время: 0.071 c
1-1140939136
Mishenka
2006-02-26 10:32
2006.03.26
Просмотр Dos овских файлов в RichEdit


2-1142251872
S{h}ura
2006-03-13 15:11
2006.03.26
MSAccess


2-1141737745
DelphiLexx
2006-03-07 16:22
2006.03.26
Выскакивания окна подобно вызовам методам в Delphi


15-1141160102
sniknik
2006-02-28 23:55
2006.03.26
В тему. ;)


15-1141577737
Vendict
2006-03-05 19:55
2006.03.26
Linux + GPRS