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 '='.
4

4 に答える 4

1

これはあなたが望むクエリです:

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

myDate後はあなたのcaseために何もしていませんでした。caseステートメントの代替形式では、構文的に許可されています。

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

ただし、 . の後に式がある場合はそうではありませんwhen

于 2013-06-18T10:53:12.397 に答える
0

必要はありませmydateCASE

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

FROM myTable GROUP BY id;
于 2013-06-18T10:53:27.850 に答える
0

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

正解です

于 2013-06-18T12:00:19.813 に答える
0

SUM(CASE myDate WHEN DATEDIFF(day, myDate, GETDATE()) )あなたは閉じ括弧を逃したと思います

于 2013-06-18T10:51:30.583 に答える