sql
  • syntax
  • syntax-error
  • 2013-06-18 35 views 0 likes 
    0

    這個查詢中狄更斯錯在哪裏?選擇不可以使用

    SELECT id, 
         SUM(CASE myDate 
          WHEN DATEDIFF(day, myDate, GETDATE()) = 0 THEN [Items] 
          ELSE 0 
          END) 
    FROM myTable 
    GROUP BY id 
    

    ???

    錯誤說

    "Incorrect syntax near '='. 
    
    +3

    'CASE myDate'應該僅僅是'C ASE' –

    +0

    您正在混合簡單案例表達式和搜索案例表達式之間的語法 - 它們是兩個不同的野獸。 –

    回答

    0

    這是你想要的查詢:

    SELECT id, 
         SUM(CASE WHEN DATEDIFF(day, myDate, GETDATE()) = 0 THEN [Items] ELSE 0 END) 
    FROM myTable 
    GROUP BY id; 
    

    myDatecase在做什麼你後。它在語法上允許的case語句的另一種形式:

    sum(case mydate when '2013-01-01' then 'New Years Day' . . . 
    

    但不是當你有when後的表達式。

    0

    你已經錯過了一個封閉的支架SUM(CASE myDate WHEN DATEDIFF(day, myDate, GETDATE()))我猜

    0

    你不需要的CASE

    SELECT id, 
         SUM(CASE 
          WHEN DATEDIFF(day, myDate, GETDATE()) = 0 
          THEN [Items] ELSE 0 END) 
    
    FROM myTable GROUP BY id; 
    
    0

    SELECT ID後mydate, SUM(CASE指明MyDate WHEN DATEDIFF(日,指明MyDate,GETDATE()= 0),則[項目] ELSE 0 END) FROM mytable的 GROUP BY ID

    這是正確的

    相關問題