0

すべてのグループを表す作成キャラクターを配置すると、すべてのデータを表示するのに問題があります。テーブルにフィールド グループがあります。フィールドにはid1、2、3、4 があり、case ステートメントも入れています。1 を入れるとid、結果は次のようgroup1になります。私が欲しいのは、キャラクターを入れるときです'A'。グループ内のすべてのデータが表示されます。どうやってするか?何も思いつきません。

これは私のコードです:-

select case when a.group='1' then 'group1'
    when a.group='2' then 'group2'
    when a.group='3' then 'group3'
    when a.group='4' then 'group4'
    when a.group='A' then 'ALL GROUP'
    end as group
from kumpulan a
where (a.group = &GROUP or &GROUP = 'A')

Group='A' の場合、'Group 1'、'Group 2'、'Group 3'、'Group 4' を 4 行で表示します。

4

2 に答える 2

0

問題が「グループ」列にある場合は、a.group by &GROUP を次のように変更する必要があります。

select 
  case when &GROUP='1' then 'group1' 
  when &GROUP='2' then 'group2' 
  when &GROUP='3' then 'group3' 
  when &GROUP='A' then 'ALL GROUP' 
  end as group 
from 
 kumpulan a 
where (a.group = &GROUP or &GROUP = 'A')

このクエリは、次のような実際の大きなクエリの要約であると思います。

select 
  case when &GROUP='1' then 'group1' 
  when &GROUP='2' then 'group2' 
  when &GROUP='3' then 'group3' 
  when &GROUP='A' then 'ALL GROUP' 
  end as `group` ,
  sum( some_column ) as total
from 
 kumpulan a 
where (a.group = &GROUP or &GROUP = 'A')
group by `group`
于 2012-06-13T09:32:03.583 に答える
0
        select case 'A' when a.group='1' then 'group1' when a.group='2' then 'group2' when a.group='3' then 'group3' when a.group='A' then 'ALL GROUP' end as group from kumpulan a where (a.group = &GROUP or &GROUP = 'A');

これの例:

       SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
    -> 'one'
于 2012-06-13T09:35:32.230 に答える