我有两个查询来获取数据,我想在同一个表中显示它们:
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
我只想在同一个表中用两列显示数据
Text1 111111 444444
Text2 222222 555555
Text3 333333 666666
我是SQL的新手,我在使用UNION,UNION ALL,SELECT INTO之间迷路了,我相信这样做非常简单。非常感谢你。
答案 0 :(得分:3)
您需要加入表格,而不是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
答案 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
答案 2 :(得分:0)
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
加入表格,将列放在一起。
用于将行放在彼此之后的联合表。