我有2个表1被称为 SteelOrders ,另一个被称为 FinalizedPrintedStickers
我最近刚问过this问题。
虽然我得到了答案,但我在问题中遗漏了一些引导我回答这个问题的细节。
我目前有这个查询:
Select OrderNumber, Sum(PanelBuildTime) AS OrderBuildTime from SteelOrders
INNER JOIN FinalizedPrintedStickers
ON
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber
我需要从FinalizedPrintedStickers获取PanelBuildTime的总和,但仅限于FinalizedPrintedStickers表中的'Status'字段='Printed'
如何在Sum语句中添加where子句?
任何帮助都将非常感谢^ _ ^
编辑:如果在FinalizedPrintedStickers表上没有状态='已打印',我需要'OrderBuildTime'为0 ....我不知道这是否真的可以使用Access或不,希望它是..
答案 0 :(得分:3)
根据您对Beth的回复,我认为您希望在选择列表中使用IIf()
表达式:
Sum(IIF([Status] = 'Printed', PanelBuildTime, 0))
答案 1 :(得分:0)
这是你需要的吗?
刚刚用scema详细信息阅读你的另一个问题,sry。怎么样:
Select OrderNumber,
Sum(case when PanelBuildTime is null then 0 else PanelBuildTime end) AS OrderBuildTime
from SteelOrders
left outer JOIN (select * from FinalizedPrintedStickers
where Status = 'Printed') f ON
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber
或
Select OrderNumber,
Sum(statusPrintedCount ) AS OrderBuildTime
from SteelOrders
inner JOIN (select *,
case when Status = 'Printed' then 1 else 0 end as statusPrintedCount
from FinalizedPrintedStickers) f ON
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber
答案 2 :(得分:0)
您可以尝试这样的事情:
Select Distinct a.*, b.PanelBuildTime
From SteelOrders a,
(Select OrderNumber, Sum(PanelBuildTime) AS OrderBuildTime from SteelOrders
INNER JOIN FinalizedPrintedStickers
ON
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber) b
Where a.OrderNumber = b.OrderNumber
编辑:你刚刚编辑了你的初始帖子,它改变了一些事情。你已经得到了答案,所以我猜是好的;)