0

データを取得するためのクエリが2つあり、両方を同じテーブルに表示したいと思います。

select aaa.Text, count(*)
  from XXXXX main inner join XXXXXX
on XXXXX
 where status = A
 group XXXXX
 order by aaa.Text

   Text1    111111  
   Text2    222222 
   Text3    333333  

select aaa.Text, count(*)
  from XXXXX main inner join XXXXXX
on XXXXX
 where status = B
 group XXXXX
 order by aaa.Text

  Text1    444444
  Text2    555555 
  Text3    666666

そして、2つの列を持つ同じテーブルにデータを表示したいだけです

  Text1    111111     444444    
  Text2    222222     555555
  Text3    333333     666666

私はSQLを初めて使用し、UNION、UNION ALL、SELECT INTOの使用に迷いました。これを行うのは、非常に簡単だと確信しています。どうもありがとうございます。

4

3 に答える 3

5

UNIONではなく、テーブルに参加する必要があります

SELECT a.text, a.count, b.count
FROM
( 
    select Text, count(*)  
    from XXXXX main inner join XXXXXX  
    on XXXXX  
    where status = A  
    group XXXXX  
    order XXXXX  
) a
INNER JOIN
( 
     select Text, count(*)   
     from XXXXX main inner join XXXXXX   
     on XXXXX   
     where status = B   
     group XXXXX   
     order XXXXX   
) b
ON a.text=b.text
于 2012-08-03T08:57:53.500 に答える
1
select Text, a.cnt, b.cnt from

(select Text, count(*) cnt
from XXXXX main inner join XXXXXX
on XXXXX
where status = A
group XXXXX) a

JOIN

(select Text, count(*) cnt
from XXXXX main inner join XXXXXX
on XXXXX
where status = B
group XXXXX) b

USING Text
ORDER xxxxx

テーブルを結合して、を並べて配置します。

を次々に配置するためのユニオンテーブル。

于 2012-08-03T08:57:58.117 に答える
1

これを行う1つの方法は、基準が一致sumする一連の合計を使用することです。1

例えば:

select Text, 
    sum(case when status="A" then 1 else 0 end),
    sum(case when status="B" then 1 else 0 end)
from XXXXX main inner join XXXXXX
on XXXXX
group XXXXX
order XXXXX
于 2012-08-03T09:00:58.600 に答える