繁体   English   中英

SQL嵌套选择......我想?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM