我有一條SQL語句。使用SQL選擇最近日期的行
SELECT
ID, LOCATION, CODE,MAX(DATE),FLAG
FROM
TABLE1
WHERE
DATE <= CONVERT(DATETIME,'11-11-2012')
AND EXISTS (SELECT * FROM #TEMP_CODE WHERE TABLE1.CODE = #TEMP_CODE.CODE)
AND ID IN (14, 279)
GROUP BY
ID, LOCATION, CODE
我需要具有與11-11-2012最近日期的行,但該表返回所有值。我究竟做錯了什麼。謝謝
ID LOCATION CODE DATE FLAG
-------------------------------------------------------------------
14 CAR STREET,UDUPI 234 2012-08-08 00:00:00.000 0
14 CAR STREET,UDUPI 234 2012-08-10 00:00:00.000 1
14 CAR STREET,UDUPI 234 2012-08-14 00:00:00.000 0
279 MADHUGIRI 234 2012-08-08 00:00:00.000 1
279 MADHUGIRI 234 2012-08-11 00:00:00.000 0
我想只顯示日期小於或等於給定日期的行。所需的結果是
ID LOCATION CODE DATE FLAG
-------------------------------------------------------------------
14 CAR STREET,UDUPI 234 2012-08-10 00:00:00.000 1
279 MADHUGIRI 234 2012-08-11 00:00:00.000 0
作爲開始,你爲什麼用''11 -11-2012''作爲你的日期格式?嘗試「20121111」。爲什麼是第一行8月10日而不是8月14日? – 2012-08-10 11:56:51
@ Aaron Bertrand我將此作爲用戶輸入。我甚至嘗試使用20121111格式,但沒有運氣返回所有五列 – Prince 2012-08-10 12:02:28
您知道您可以控制用戶輸入權限,而不是僅僅傳遞用戶輸入到SQL Server的任何舊字符串?爲什麼不傳遞正確類型的日期或日期時間參數? – 2012-08-10 12:03:18