如何在sql中编写一个显示特殊列的查询

时间:2017-05-18 05:58:37

标签: sql-server

我写了一个查询,这个表就是结果 enter image description here

我想添加一个显示结果的列,例如

示例: suproforma = 53 =>新栏目= [jameradif [for row1] + jameradif [for row2] + ....]

=>(12750000 + 1147500)

非常感谢

2 个答案:

答案 0 :(得分:0)

您可以使用SUM OVER(PARTITION BY)获取新列,如下所示:

SUM(jameradif) OVER(PARTITION BY suProforma) AS TotalJameradifPerProforma

答案 1 :(得分:0)

我可以根据您的情况假设您需要另一列来计算与JameraDiff列相对应的Suproforma列的总和。

我已为此创建了一个示例查询。

CREATE TABLE soexample 
  ( 
     suproforma INT, 
     jameradiff DECIMAL(18, 4) 
  ) 

插入了少量样本记录。

<强>记录:

SuProforma JameraDiff
53         1275000.0000
53         1147500.0000
54         2504000.0000
54         2253600.0000

<强>查询:

SELECT tbl.suproforma, 
       tbl.jameradiff, 
       tbl2.totalquantity 
FROM   soexample AS tbl 
       JOIN(SELECT suproforma, 
                   Sum(jameradiff) AS TotalQuantity 
            FROM   soexample 
            GROUP  BY suproforma) AS tbl2 
         ON tbl.suproforma = tbl2.suproforma 

<强>输出:

suproforma jameradiff   TotalQuantity 
53         1275000.0000 2422500.0000
53         1147500.0000 2422500.0000
54         2504000.0000 4757600.0000
54         2253600.0000 4757600.0000