1
私は、レポートのソースとして使用するための質問をしています。 datepart(dw、GetDate())の出力を整数(月曜日は2)と比較しようとすると、奇妙な理由があります。私はなぜ私がiifステートメントで2つの整数を比較できなかったのかを調べ始めました。私は絶対に答えは見つけられませんでした。 がここに完全なコードですdatepartの出力を整数と比較するエラー
DECLARE @dp integer,@d integer
set @dp =DATEpart(dw,GETDATE())
set @d = 2
SELECT TOP 100 PERCENT CUST_ORDER_LINE.PRODUCT_CODE
,CUSTOMER_ORDER.ID
,CUSTOMER_ORDER.CUSTOMER_ID
,CUST_ORDER_LINE.PART_ID
,CUST_ORDER_LINE.MISC_REFERENCE
,CUST_ORDER_LINE.COMMODITY_CODE
,CUSTOMER_ORDER.SALESREP_ID
,CUSTOMER_ORDER.TERRITORY
,CUST_ORDER_LINE.ORDER_QTY * CUST_ORDER_LINE.UNIT_PRICE AS Amount
,CUSTOMER_ORDER.ORDER_DATE
FROM CUST_ORDER_LINE
INNER JOIN CUSTOMER_ORDER ON CUST_ORDER_LINE.CUST_ORDER_ID = CUSTOMER_ORDER.ID
WHERE (
iif(@dp = @d,CUSTOMER_ORDER.ORDER_DATE BETWEEN (dateadd(day, datediff(day, 0, getdate()), 0) - 3) AND (dateadd(day, datediff(day, 0, getdate()),0))),
CUSTOMER_ORDER.ORDER_DATE BETWEEN (dateadd(day, datediff(day, 0, getdate()), 0) - 1)) AND (dateadd(day, datediff(day, 0, getdate()), + 1))))
)
ORDER BY CUSTOMER_ORDER.ORDER_DATE DESC
このクエリのポイントは、それは月曜日であれば、昨日からデータを取得することで、金曜日(私は前後にこれを行う方法に行ってきました、これは、この反復回数の試みです)。
EDIT:エラーコードMsg 170、レベル15、状態1、行19 行19: '='の近くの構文が正しくありません。
「iif」は2008年ではありません。https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-iif-transact-sql – SQLChao