DateAdd中的SQL-If语句
我对SQL非常陌生,但我非常喜欢它,并希望在这方面做得更好 在我的代码中,我将3个表合并在一起,然后为合并创建几列。我已经创建了一列“DaysOfStock”,并希望将每列中的数字添加到当前日期。问题是“DaysOfStock”是一个“if”函数,我不知道如何将它添加到“DayAdd”函数中。下面是我遇到问题的代码部分DateAdd中的SQL-If语句,sql,if-statement,calculated-columns,case-when,dateadd,Sql,If Statement,Calculated Columns,Case When,Dateadd,我对SQL非常陌生,但我非常喜欢它,并希望在这方面做得更好 在我的代码中,我将3个表合并在一起,然后为合并创建几列。我已经创建了一列“DaysOfStock”,并希望将每列中的数字添加到当前日期。问题是“DaysOfStock”是一个“if”函数,我不知道如何将它添加到“DayAdd”函数中。下面是我遇到问题的代码部分 SELECT Cust.Article, IsNull(stock.StockQuantity,0) StockQuantity, IsNull(orders.O
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)
如果有什么不清楚的地方,请告诉我。
提前谢谢你的帮助。
-alex嗯,很简单,只要重复相同的代码:
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,
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,
GetDate()) AS ProjectedDate
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)