开发者

Sql Sum OF related Tables

This Is SQL 开发者_JAVA技巧Statment:

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?

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜