[英]Sql Sum OF related Tables
This Is SQL Statment: 这是SQL语句:
SELECT
dbo.tblWorkflow.WorkflowName,
ISNULL((SELECT SUM(dbo.tblSchemaOperation_Execution.ExecutedQuantity * dbo.tblOperationItemPrice.UnitPrice) AS Amount
FROM dbo.tblSchemaOperation_Execution
INNER JOIN dbo.tblOperationItemPrice ON dbo.tblSchemaOperation_Execution.OperationID = dbo.tblOperationItemPrice.OperationID
GROUP BY dbo.tblSchemaOperation_Execution.SchemaYear,
dbo.tblSchemaOperation_Execution.SchemaNO
HAVING (dbo.tblSchemaOperation_Execution.SchemaNO = dbo.tblWorkflowActivtyInsatnce.SchemaNO) AND
(dbo.tblSchemaOperation_Execution.SchemaYear = dbo.tblWorkflowActivtyInsatnce.SchemaYear)), 0) AS ActualAmount
FROM dbo.tblWorkflowActivtyInsatnce
INNER JOIN dbo.tblWorkflow ON dbo.tblWorkflowActivtyInsatnce.WorkflowID = dbo.tblWorkflow.WorkflowID
INNER JOIN dbo.tblWorkflowActivity ON dbo.tblWorkflowActivtyInsatnce.WorkflowActivityID = dbo.tblWorkflowActivity.WorkflowActivityID
WHERE (dbo.tblWorkflowActivtyInsatnce.StartDate IS NOT NULL)
AND (dbo.tblWorkflowActivtyInsatnce.FinishDate IS NULL)
AND (dbo.tblWorkflowActivity.ActivityName <> 'Execution')
and the output is: 输出为:
WorkFlowName : ActualAmount
------------ : ------------
Sceco : 28020.00
Sevareg : 5005.00
Sevareg : 1100.00
How can I use sum to get total of Sevareg? 如何使用总和获得塞瓦雷格的总和? like this
像这样
WorkFlowName : ActualAmount
------------ : ------------
Sceco : 28020.00
Sevareg : 6105.00
Is this what you want, using GROUP BY
and SUM
? 使用
GROUP BY
和SUM
就是您想要的吗?
SELECT WorkflowName, SUM(ActualAmount)
FROM (SELECT dbo.tblWorkflow.WorkflowName,
ISNULL ((SELECT SUM(dbo.tblSchemaOperation_Execution.ExecutedQuantity * dbo.tblOperationItemPrice.UnitPrice) AS Amount
FROM dbo.tblSchemaOperation_Execution
INNER JOIN dbo.tblOperationItemPrice
ON dbo.tblOperationItemPrice.OperationID = dbo.tblSchemaOperation_Execution.OperationID
GROUP BY dbo.tblSchemaOperation_Execution.SchemaYear,
dbo.tblSchemaOperation_Execution.SchemaNO
HAVING (dbo.tblSchemaOperation_Execution.SchemaNO = dbo.tblWorkflowActivtyInsatnce.SchemaNO)
AND (dbo.tblSchemaOperation_Execution.SchemaYear = dbo.tblWorkflowActivtyInsatnce.SchemaYear)),
0) AS ActualAmount
FROM dbo.tblWorkflowActivtyInsatnce
INNER JOIN dbo.tblWorkflow
ON dbo.tblWorkflow.WorkflowID = dbo.tblWorkflowActivtyInsatnce.WorkflowID
INNER JOIN dbo.tblWorkflowActivity
ON dbo.tblWorkflowActivity.WorkflowActivityID = dbo.tblWorkflowActivtyInsatnce.WorkflowActivityID
WHERE (dbo.tblWorkflowActivtyInsatnce.StartDate IS NOT NULL)
AND (dbo.tblWorkflowActivtyInsatnce.FinishDate IS NULL)
AND (dbo.tblWorkflowActivity.ActivityName <> 'Execution')
) AS x
GROUP BY dbo.tblWorkflow.WorkflowName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.