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

Вниз

Запрос   Найти похожие ветки 

 
makz ©   (2008-03-01 12:17) [0]

Есть таблица REG с полями ID, p и m (кроме прочих).  Поля p и m могут принимать значения 0 или 1. Запрос
 select case m when 0 then "M-" else "M+" end || case p when 0 then "П-" else "П+" end as CC, count(*)
 from REG
 group by m, p

выдает таблицу только для существующих в базе комбинаций значений m и p, например:

count    CC
2          M+П+
1          M+П-

а нужно всегда получать таблицу с 4мя строками:

count    CC
2          M+П+
1          M+П-
0          M-П+
0          M-П-

Как этого добится, пусть даже с ХП? Помогите пожалуйста!


 
www   (2008-03-01 22:21) [1]

select sum(cnt), cc from(
select count(*) as cnt, case m when 0 then "M-" else "M+" end || case p when 0 then "П-" else "П+" end as CC
from reg
group by m, p
union all
select 0, "M+П+" from rdb$database
union all
select 0, "M+П-" from rdb$database
union all
select 0, "M-П+" from rdb$database
union all
select 0, "M-П-" from rdb$database
)
group by cc


 
palva ©   (2008-03-01 23:36) [2]


select "Ì-Ï-" CC, count(*) from table3 where m=0 and p=0
union
select "&#204;-&#207;+" CC, count(*) from table3 where m=0 and p<>0
union
select "&#204;+&#207;-" CC, count(*) from table3 where m<>0 and p=1
union
select "&#204;+&#207;+" CC, count(*) from table3 where m<>0 and p<>0


 
makz ©   (2008-03-03 08:41) [3]

спасибо!


 
makz ©   (2008-03-03 09:48) [4]

Только вот проблема - есть еще один атрибут GDU, отчет нужен в 3 колонки:

GDU1     GDU2       CC
2          3             M+П+
1          4             M+П-
0          0             M-П+
0          1             M-П-


Тут только вложенный select поможет?


 
Johnmen ©   (2008-03-03 10:24) [5]


> еще один атрибут GDU

Что за атрибут и как он используется, мы должны, как обычно, догадаться сами?


 
makz ©   (2008-03-03 10:32) [6]

Просто еще одно поле integer в REG, в случае если оно принимает значение 41 - результат попадает в GDU1 отчета, при значении 42 - в GDU2, в остальных случаях запись отбрасывается.


 
Johnmen ©   (2008-03-03 11:05) [7]

Вместо COUNT в [2]:
SUM(CASE WHEN GDU=41 THEN 1 ELSE 0 END) AS GDU 1


 
makz ©   (2008-03-04 04:08) [8]

Понял, спасибо!



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

Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
2-1204193295
bigbro
2008-02-28 13:08
2008.03.30
WideString в элементах управления


3-1189144627
xman
2007-09-07 09:57
2008.03.30
DevExpress cxGrid Filter


2-1204209051
kirillrepin
2008-02-28 17:30
2008.03.30
выборка по полю datetime


15-1203306318
Dmitry S
2008-02-18 06:45
2008.03.30
Как объявить пустой массив?


2-1204417319
Аврам
2008-03-02 03:21
2008.03.30
получить список ссылок





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