Sql server SQL Server中的多个聚合函数
我需要查询[贡献]。我使用了这个查询:Sql server SQL Server中的多个聚合函数,sql-server,Sql Server,我需要查询[贡献]。我使用了这个查询: with ttt as ( select (DYG.U_StyleId)[DYG Style] ,Max(O1.CardCode) [Party Group Code], MAX(O1.CardName) [Party Group Name] ,MAX(OR1.DocDate) [Date] ,sum(CONVERT(NUMERIC(15,2),(RDR1.PriceBefDi*RDR1.Quantity)))
with ttt as
(
select
(DYG.U_StyleId)[DYG Style]
,Max(O1.CardCode) [Party Group Code],
MAX(O1.CardName) [Party Group Name]
,MAX(OR1.DocDate) [Date]
,sum(CONVERT(NUMERIC(15,2),(RDR1.PriceBefDi*RDR1.Quantity))) [JobAmount]
,CONVERT(NUMERIC(15,2),SUM(RDR1.Quantity)) [Mtr]
,CONVERT(NUMERIC(15,2),SUM(RDR1.U_Pcs))[Pcs]
,(select sum(RDR1.PriceBefDi*RDR1.Quantity) from RDR1) tqty
from
ORDR OR1
left join RDR1 on RDR1.DocEntry = OR1.DocEntry
left join OITM on RDR1.ItemCode = oitm.ItemCode
LEFT JOIN OCRD ON OCRD.CardCode = OR1.CardCode
LEFT JOIN OCRG ON OCRG.GroupCode = OCRD.GroupCode
LEFT JOIN OCRD O1 ON O1.U_BCode = OCRD.U_GrpCod
LEFT JOIN
( SELECT U_StyleId FROM RDR1 WHERE U_StyleId in
('BLOOM','BLOOMING','DYD','DYD-R','DYED','Ex.CLR.','RAINBOW'))
DYG ON DYG.U_StyleId = RDR1.U_StyleId
group by
DYG.U_StyleId
)
select
Style, [Party Group Code],
[Party Group Name], JobAmount,
(sum(JobAmount) / tqty * 100) [Contribution],
[Date], [Pcs]
from
ttt
group by
Style
我需要上一份工作的总额除以上面的质量。
但它显示了这个错误
'列'ttt.Party Group Code'在选择列表中无效,因为它未包含在聚合函数或Group BY子句中。'
请帮助我查询正确的[Contribution]金额。尝试以下操作:
select Style,[Party Group Code],[Party Group Name],JobAmount,[Date],[Pcs],
100.0 * (sum(JobAmount) OVER (PARTITION BY Style))/tqty [Contribution]
from ttt;