我已經寫了一個統計表總結表記錄的函數。這個函數MSSQL 2005下正常工作:MSSQL 2000上的MSSQL 2005函數:GROUP BY CAST(...)問題
DECLARE
@start datetime,
@final datetime,
SET @start = '08.02.2012'
SET @final = '08.02.2013'
SELECT
CAST(
FLOOR(ISNULL(col1,col2)/50) * 50 AS int
) AS [MyCol1],
CAST(
FLOOR(ISNULL(col1,col2)/50) * 50 AS int
)+49 AS [MyCol2],
COUNT(*) AS [Anzahl],
CAST(AVG(col3) AS decimal(3,2)) AS [MyCol3]
FROM T
WHERE Time BETWEEN @start AND @final
GROUP BY
CAST(
FLOOR(ISNULL(col1,col2)/50) * 50 AS INT
)
ORDER BY 1
現在我想在MSSQL使用此功能2000個系統,但本集團按區域似有不妥:
列在無效選擇列表,因爲它不包含在合計 函數和GROUP BY子句中。
有人能幫助我嗎?
沒有2000個方便測試。 'GROUP BY CAST(FLOOR(ISNULL(col1,col2)/ 50)* 50 AS INT),CAST(FLOOR(ISNULL(col1,col2)/ 50)* 50 AS INT)+ 49'是否工作?也許2000沒有邏輯來檢測第一個分組,而第二個分組是相同的。 – 2013-02-08 13:50:16
謝謝你,馬丁! 它工作正常! – Panschi11291 2013-02-08 13:57:03