0

我有销售线,有些是开票的,有些不是。我想添加每个订单(salesid)的发票行共享信息。我希望每个销售行的这些信息在一个订单中都相同。已开票行的销售状态 =3。这是我的尝试:

SELECT  
salesid,linenum,itemid,salesstatus,name,lineamount
,(SELECT SUM(CASE WHEN salesstatus=3 THEN lineamount ELSE 0 END) as expr1) invoiced
,(SELECT SUM (lineamount) as expr2 GROUP BY salesid) total
,invoiced/total
FROM T.SALESLINES 
GROUP BY
salesid,linenum,itemid,salesstatus,name,lineamount

按 salesid 分组不起作用,会出现错误“每个 GROUP BY 表达式必须包含至少一个不是外部引用的列。” 我猜代码看起来合乎逻辑但不起作用。那么我应该如何按salesid分组以除以总发票?

4

1 回答 1

0

尝试

Select *,invoiced/total as ColName from (
SELECT  
salesid,linenum,itemid,salesstatus,name,lineamount
,(SELECT SUM(CASE WHEN salesstatus=3 THEN lineamount ELSE 0 END From T.SALESLINES) as invoiced
,(SELECT SUM (lineamount)From T.SALESLINES GROUP BY salesid) as total
FROM T.SALESLINES) source
GROUP BY
salesid,linenum,itemid,salesstatus,name,lineamount,invoiced,total
于 2013-10-25T15:28:53.613 回答