簡體   English   中英

嘗試使用CASE和基於另一個列值的條件更新SQL Server 2008中的列

[英]Trying to Update a Column in SQL Server 2008 using CASE and a Condition based on another Column Value

我正在嘗試根據其他列中的值更新具有兩列的表。 我有一個語法錯誤,現在我有點痛苦。 所以我想基於NET_SALES列中的值更新MONETARY列,並且我想基於DLP列中的值更新RECENCY列。 思考?

UPDATE #CC201403B_CURRENT
 SET MONETARY=CASE 
  WHEN (NET_SALES BETWEEN '75.00' AND '100.00') THEN '75-100'
  WHEN (NET_SALES BETWEEN '100.01' AND '125.00') THEN '100-125'
  WHEN (NET_SALES BETWEEN '125.01' AND '175.00') THEN '125-175'
  WHEN (NET_SALES BETWEEN '175.01' AND '250.00') THEN '175-250'
  ELSE '250+' END,
 SET RECENCY=CASE
  WHEN (DLP BETWEEN '3/1/2013' AND '5/31/2013') THEN 'DLP 10-12'
  WHEN (DLP BETWEEN '6/1/2013' AND '8/31/2013') THEN 'DLP 7-9'
  WHEN (DLP BETWEEN '9/1/2013' AND '11/30/2013') THEN 'DLP 4-6'
  WHEN (DLP BETWEEN '12/1/2013' AND '2/28/2014') THEN 'DLP 0-3' 
  ELSE '' END;

您的查詢中有2次關鍵字SET ,並且您不需要它。 請嘗試以下查詢。

UPDATE #CC201403B_CURRENT
SET 
    MONETARY = CASE 
        WHEN (NET_SALES BETWEEN '75.00' AND '100.00') THEN '75-100'
        WHEN (NET_SALES BETWEEN '100.01' AND '125.00') THEN '100-125'
        WHEN (NET_SALES BETWEEN '125.01' AND '175.00') THEN '125-175'
        WHEN (NET_SALES BETWEEN '175.01' AND '250.00') THEN '175-250'
        ELSE '250+' END,
    RECENCY = CASE
        WHEN (DLP BETWEEN '3/1/2013' AND '5/31/2013') THEN 'DLP 10-12'
        WHEN (DLP BETWEEN '6/1/2013' AND '8/31/2013') THEN 'DLP 7-9'
        WHEN (DLP BETWEEN '9/1/2013' AND '11/30/2013') THEN 'DLP 4-6'
        WHEN (DLP BETWEEN '12/1/2013' AND '2/28/2014') THEN 'DLP 0-3' 
        ELSE '' END;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM