2016-11-08 147 views
-3

我有一个SQL Server查询,看起来像这样的伪需要正确的语法为伪

SELECT item_id, 
    item_desc, 
    ship2_name, 
    serial_number, 
    invoice_no, 
      (CASE WHEN invoice_no <> 'null' THEN 1 END)AS mult_inv, 
      quantity_shipped, 
     (CASE WHEN (mult_inv > 1) THEN SUM(quantity_shipped))AS ship_total 
    FROM table 

本质上讲,当一个发票号出现超过1次我需要添加装运数量和存储的值他们在一个新的专栏。

+2

样本数据和期望的结果确实是hep。 –

+0

你是什么尝试你自己的?你希望我们做你的功课吗? –

+0

这帮助我从这个网站获得最大收益。 http://stackoverflow.com/help/how-to-ask –

回答

2

你所描述的听起来像一个窗口函数。这似乎是做你所描述的:

SELECT column1, column2, column3, column4, column5, 
     (CASE WHEN COUNT(*) OVER (PARTITION BY column5) 
      THEN SUM(column5) OVER() 
     END) as column6 
FROM table1; 

我不是100%确定,这是你真正想要的。

+0

地狱猜戈登! –

+0

我更新了我的代码以尝试更具体。 – LDykes

+0

我不需要在第6列中存储总和,但是当第5列出现多次时,我需要第6列中的值的总和,并且我需要在新列中显示这些新值,对不起我不熟悉SQL,这是我第二次使用这个网站,所以我不知道我是否提供了正确的信息类型。 – LDykes