Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.112 c
15-1141643051
Kaban
2006-03-06 14:04
2006.03.26
Пиксел


15-1141630533
McSimm
2006-03-06 10:35
2006.03.26
Тэг <canvas>


15-1141168449
Teapot
2006-03-01 02:14
2006.03.26
Помогите злому начинающему!


2-1141723548
dera
2006-03-07 12:25
2006.03.26
как по нажатию на Enter, "нажать" Button1?


15-1140894177
Nic
2006-02-25 22:02
2006.03.26
Лица форума





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