从一个结果集中的多个表中选择count(*)

时间:2011-05-01 17:49:22

标签: sql oracle oracle9i

如何为包含其他字段的30个表选择count(*)。

我想像时间限制那样应用限制。我有statemasterdealermasterbusinessdetail等表格。

我想要各自statecodestatename的结果。

我希望输出如下: -

statecode statename count(*) for dealermaster count(*) for business details
01        ca         25                        20
01        au         30                        35

statecode,statename from statemaster table

1 个答案:

答案 0 :(得分:5)

虽然这听起来像是一个奇怪的请求,但无论如何我会提供一个答案,看看你是如何相处的。

你应该能够使用一堆相关的子查询来获得这些结果,如...

SELECT S.statecode,
       S.statename,
       (
              SELECT COUNT(*)
              FROM dealermaster DM
              WHERE DM.statecode = S.statecode
       ) AS COUNT1,
       (
              SELECT COUNT(*)
              FROM businessdetail BD
              WHERE BD.statecode = S.statecode
       ) AS COUNT2
FROM statemaster S
GROUP BY S.statecode, S.statename