我在尝试组合这两个简单查询时遇到了最困难的时间(对于SQL和所有事物,我还是很陌生)。我已经尝试了多种方式将它们组合在一起(总和时为...,否则为1,否则为0)并使用联接,并尝试实现Exist,但仍然给我一个错误。
无论如何,我要合并的两个查询如下:
Select
Count (*) as TotalA,
z.zname
From CTable c, STable s, SLTable sl, ZTable z
Where c.ID=s.sID
and s.sID=sl.ID
and sl.zID=z.zID
Group by z.zname
Order by z.zname
Select
Count (*) as TotalB,
z.zname
From STable s, SLTable sl, ZTable z
Where s.sID=sl.sID
and sl.zID=z.zID
Group By z.zName
Order By z.zName
这是我尝试获取信息的尝试之一
Select
Count (*) as TotalB,
sum (case when sl.sID=s.sID and sl.zID=z.zID then 1 else 0 end) as TotalA,
z.zname
From STable s, SLTable sl, ZTable z, CTable c
Where s.sID=sl.sID
and sl.zID=z.zID
and c.sID=s.sID
Group By z.zname
Order By z.zname
这几乎给了我总计A,总计B和Zname的三列-但是总计A和总计B彼此完全相同-从第一个查询中获取所有正确的信息,然后将其复制到总计B区域中。
我敢肯定,我只是在粗暴地试图将它们粉碎在一起,但是我真的不知道如何将它们结合在一起。
任何帮助表示赞赏!
这是我的回答方式-经过一些研究-以及你们的累积答案:
SELECT
ts.zname,
TotalA ,
TotalB
FROM
(
Select
Count (*) as TotalA,
z.zname
From CTable c, STable s, SLTable sl, ZTable z
Where c.sID=s.sID
and s.sID=sl.sID
and sl.zID=z.zID
Group by z.zname
) TC
INNER JOIN
(
Select
Count (*) as TotalB,
z.zname
From STable s, SLTable sl, ZTable z
Where s.sID=sl.sID
and sl.zID=z.zID
Group By z.zname
) ts ON ts.zname = tc.zname
Order By ts.ZoneName
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句