![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос [Firebird 2.0]
makz © (2008-03-01 12:17:00)Есть таблица 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-П-
Как этого добится, пусть даже с ХП? Помогите пожалуйста!
makz (2008-03-04 04:08:00) [1]Понял, спасибо!
Johnmen (2008-03-03 11:05:00) [2]Вместо COUNT в [2]:
SUM(CASE WHEN GDU=41 THEN 1 ELSE 0 END) AS GDU 1
makz (2008-03-03 10:32:00) [3]Просто еще одно поле integer в REG, в случае если оно принимает значение 41 - результат попадает в GDU1 отчета, при значении 42 - в GDU2, в остальных случаях запись отбрасывается.
Johnmen (2008-03-03 10:24:00) [4]
> еще один атрибут GDU
Что за атрибут и как он используется, мы должны, как обычно, догадаться сами?
makz (2008-03-03 09:48:00) [5]Только вот проблема - есть еще один атрибут GDU, отчет нужен в 3 колонки:
GDU1 GDU2 CC
2 3 M+П+
1 4 M+П-
0 0 M-П+
0 1 M-П-
Тут только вложенный select поможет?
makz (2008-03-03 08:41:00) [6]спасибо!
palva (2008-03-01 23:36:00) [7]
select 'Ì-Ï-' CC, count(*) from table3 where m=0 and p=0
union
select 'Ì-Ï+' CC, count(*) from table3 where m=0 and p0
union
select 'Ì+Ï-' CC, count(*) from table3 where m0 and p=1
union
select 'Ì+Ï+' CC, count(*) from table3 where m0 and p0
www (2008-03-01 22:21:00) [8]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