【发布时间】:2017-07-11 14:51:10
【问题描述】:
我对 SQL 非常陌生,但我真的很喜欢它,并希望能做得更好。
在我的代码中,我将 3 个表合并在一起,然后为该合并创建几列。我创建了一个“DaysOfStock”列,并希望将每列中的数字添加到当前日期。问题是“DaysOfStock”是一个“if”函数,我不知道如何将它添加到“DayAdd”函数中。我遇到问题的代码部分如下。
SELECT Cust.Article,
IsNull(stock.StockQuantity,0) StockQuantity,
IsNull(orders.OpenQty,0) OpenOrders,
IsNull(usage.[3MonUsage], 0) [3MonUsage], IsNull(usage.EAU, 0) [EAU],
ROUND(IsNull(usage.EAU, 0)/366,0) DailyUsage,
CASE WHEN IsNull(usage.EAU, 0)/366 = 0 THEN ROUND(IsNull(stock.StockQuantity,0)/(IsNull(orders.OpenQty, 0)/366),2)
ELSE ROUND(IsNull(stock.StockQuantity,0)/(IsNull(usage.EAU, 0)/366),2) END AS DaysOfStock
DateAdd(day, **DaysOfStock**, GetDate())
FROM TeslaArts
LEFT OUTER JOIN usage ON CustArts.Article = usage.Article
LEFT OUTER JOIN stock ON CustArts.Article = stock.Article
LEFT OUTER JOIN orders ON CustArts.Article = orders.Article
WHERE (orders.OpenQty > 0 AND usage.[3MonUsage] > 0)
OR (orders.OpenQty = 0 AND usage.[3MonUsage] > 0)
OR (orders.OpenQty > 0 AND usage.[3MonUsage] = 0)
如果有什么不清楚的地方请告诉我。 提前感谢您的帮助。 -亚历克斯
【问题讨论】:
标签: sql if-statement calculated-columns case-when dateadd