[英]SQL query to SUM up tables from SELECT COUNT statement with UNION
我目前正在尝试总结一个MySQL语句的结果,该语句为我提供了几个不同表的行数。
我已经研究了与此有关的stackoverflow的每种解决方案。 不幸的是,我无法找出适合我的情况的正确语法。
我的工作陈述没有总结出来:
SET @shipmentId=456;
SELECT
(SELECT COUNT(*) FROM Table1 WHERE ShipmentID = @shipmentId)
UNION ALL
(SELECT COUNT(*) FROM Table2 WHERE ShipmentID = @shipmentId)
UNION ALL
(SELECT COUNT(*) FROM Table3 WHERE ShipmentID = @shipmentId)
UNION ALL
(SELECT COUNT(*)FROM Table4 WHERE ShipmentID = @shipmentId)
UNION ALL
(SELECT COUNT(*)FROM Table5 WHERE ShipmentID = @shipmentId);
我认为这应该是最接近正确解决方案的方法,但是我不确定(尝试了很多变体):
SET @shipmentId=456;
SELECT SUM(MeasuredValues) FROM
SELECT(
(SELECT COUNT(*) FROM Table1 WHERE ShipmentID = @shipmentId) AS MeasuredValues
UNION ALL
(SELECT COUNT(*) FROM Table2 WHERE ShipmentID = @shipmentId) AS MeasuredValues
UNION ALL
(SELECT COUNT(*) FROM Table3 WHERE ShipmentID = @shipmentId) AS MeasuredValues
UNION ALL
(SELECT COUNT(*)FROM Table4 WHERE ShipmentID = @shipmentId) AS MeasuredValues
UNION ALL
(SELECT COUNT(*)FROM Table5 WHERE ShipmentID = @shipmentId) AS MeasuredValues) t1;
在此先感谢您的帮助。
已经尝试了以下链接: StackOverFlow Solution1
您可以简单地总结一下您的选择:
SET @shipmentId=456;
SELECT
(SELECT COUNT(*) FROM Table1 WHERE ShipmentID = @shipmentId)
+
(SELECT COUNT(*) FROM Table2 WHERE ShipmentID = @shipmentId)
+
(SELECT COUNT(*) FROM Table3 WHERE ShipmentID = @shipmentId)
+
(SELECT COUNT(*) FROM Table4 WHERE ShipmentID = @shipmentId)
+
(SELECT COUNT(*) FROM Table5 WHERE ShipmentID = @shipmentId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.