Главная страница
    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.04 c
2-1204353229
Lamer666
2008-03-01 09:33
2008.03.30
Как лучше обработать результаты GET?


15-1202661027
ketmar
2008-02-10 19:30
2008.03.30
kpmc git repository


2-1204363054
makz
2008-03-01 12:17
2008.03.30
Запрос


11-1186479034
Preddy
2007-08-07 13:30
2008.03.30
MouseMove как в VCL


2-1204743273
timekiller
2008-03-05 21:54
2008.03.30
TDateTimePicker позиция курсора и текст после этой позиции





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