如何解决如何将子查询的输出传递到主查询中,以便可以计算单独表中的项目
以下是我要实现的目标。我有一个数据库“ CARS_DATABASE”,其中有以下表格:
货车 货车 巴士 敞篷车 城市汽车 Stretch_limos 救援车辆 Double_decker_buses
首先,我将运行以下查询以获取表列表:
SELECT TableName
FROM
(SELECT TableName
FROM DBC.TablesV
WHERE DatabaseName = 'CARS_DATABASE';
现在,我想将其合并到一个查询中,如下所示:
Select count(*) from CARS_DATABASE.**TableName**
WHERE TableName = (SELECT TableName
FROM
(SELECT TableName
FROM DBC.TablesV
WHERE DatabaseName = 'CARS_DATABASE') Q1);
我想知道如何使它动态化并将所有表的名称传递给FROM子句。本质上,我希望它从所有这些表中动态选择,例如
Select count(*) from CARS_DATABASE.Lorries
Select count(*) from CARS_DATABASE.Vans
Select count(*) from CARS_DATABASE.Buses
以此类推。
我必须编写宏或存储过程来实现这一目标吗?
在此先感谢您的建议。
欢呼 安迪
解决方法
有一个衍生表(子查询),在这里SELECT
和UNION ALL
不同的车辆表。 GROUP BY
结果。
select vehicle_type,count(*)
from
(
select 'lorries' as vehicle_type from CARS_DATABASE.Lorries
union all
select 'vans' as vehicle_type from CARS_DATABASE.vans
union all
...
select 'Double_decker_buses' as vehicle_type from CARS_DATABASE.Double_decker_buses
) vehicles
GROUP BY vehicle_type
注意:我会将所有车辆都存储在一个公用表格中。如果您对单独的表格感到困惑,则可以创建一个视图来UNION ALL
不同的表格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。