[英]SQL nested Select…I think?
我有2个表UnitProd和Unit。
Unit = unitproductivityid,unitid, unitnumber, fleet
UnitProd = unitproductivityid, day, shipweight, stops
我在每个表中都有多个单元,我正在尝试按功能分组来获取不同的东西。(表中有多个字段而不是指定这只是示例目的。)
所以基本上我有以下几点:
SELECT
u.[Fleet]
,u.[Unit]
,up.[Day]
,((SUM(up.[Shipment_Weight]))/2000) AS [ShipmentWeight]
,((SUM(up.[Shipment_Weight]))/COUNT(up.[Stops])) AS [ShpmntAvg]
FROM
[dbo].[UnitProductivity] u
INNER JOIN [dbo].[UnitProductivityDetails] up
ON u.UnitProductivityId = up.UnitProductivityId
GROUP BY u.fleet, u.unit
所以基本上我遇到的问题是一些up。[Stops]字段中有一个0,所以我想排除这些。 所以基本上一个单位有1-30天无论如何,有些日子有0作为[停止]所以我想数(只有一天停止)。 我会在这里使用嵌套选择吗?
谢谢
除非我对这个问题有误解,否则您不需要嵌套的SELECT。
只需在GROUP BY之前添加以下内容:
WHERE up.[Stops] > 0
它不必嵌套,但这是一个简单的方法:
SELECT * FROM Unit WHERE unitproductivityid IN (SELECT unitproductivityid FROM UnitProd WHERE stops > 0) as UP
祝好运!
在GROUP BY行之后,添加HAVING计数(up。[Stops])> 0
使用现有代码,您可以执行HAVING子句:
SELECT u.[Fleet] ,u.[Unit] ,up.[Day] ,((SUM(up.[Shipment_Weight]))/2000) AS [ShipmentWeight] ,((SUM(up.[Shipment_Weight]))/COUNT(up.[Stops])) AS [ShpmntAvg] FROM [dbo].[UnitProductivity] u INNER JOIN [dbo].[UnitProductivityDetails] up ON u.UnitProductivityId = up.UnitProductivityId GROUP BY u.fleet, u.unit HAVING(COUNT(up.[Stops]) > 0
有关HAVING子句的更多信息,请访问: http : //www.w3schools.com/sql/sql_having.asp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.