i.Notes, SUM(l.Discount) AS Dcount, i.DiscDate, i.DueDate, i.UIMth, i.UISeq, poj.Job, poj.Description, i.UniqueAttchID, i.ReviewerGroup AS RevGrp, SUM(l.GrossAmt)
AS GrossAmt, v.PayTerms, dbo.HQPT.DiscRate, i.InvTotal, DATEDIFF(day,getdate(),i.DiscDate) AS DiscDays,
--Trying to use the DiscDays and Dcount here
if DiscDays, between '20' and '11' THEN sum(Dcount) as YelDisc
我希望有人能帮助我。我对T-SQL非常陌生。我相信我所需要的这里是一个子查询,但我不知道如何格式化正确在同一个select语句中选择别名
谢谢
我增加了一些额外的案例澄清 –
都铎感谢您的帮助,您的建议工作正如我所需要的。额外的病例陈述是有帮助的。我还有一个问题。如果我希望'11'和'20'是YelDisc,'20'和'40'是GreDisc,那么该声明如何显示?我知道我可以在同一个案例声明中全部是圆顶,还是必须分别为GreDisc编写一个圆顶?再次感谢!! – Steve
你必须把它放在不同的列上,在不同的case case state中,例如:'case when'11'和'20'之间的DATEDIFF(day,getdate(),i.DiscDate)THEN sum(Dcount)else null end as YelDisc,当DATEDIFF(day,getdate(),i.DiscDate)在'20'和'40'THEN sum(Dcount)/ 2 else null作为GreDisc'的情况下,在where子句中查找不为空的列。原因是你的模式(即列名和数据类型)不应该根据检索到的数据而改变。 –