2014-02-26 60 views
4

我已經寫了幾個AGGREGATE功能CLRPivot命令在多參數CLR聚合函數上失敗......想法爲什麼?

abj.median

abj.percentile

一個有趣的問題的位。在結構上的功能非常相似,除了計算結果的方式的小差異以外,AND,PERCENTILE需要2個參數,而中間值僅爲1。

兩個函數的通用參數是字段名稱。百分功能還攜帶一個值,以確定哪個百分位數(10,75,90等.....)

本命令細.....

; 
WITH p1 AS (

SELECT WAITTIMES_DAY/7.0 AS waitWeeks, 

abj.fyq(surg_sx_date) as fiscalYear, 

SURG_SITE_ZONE 

FROM dbo.Surgery 
) 

SELECT * 

FROM p1 p 

PIVOT (abj.median(waitweeks) 

FOR fiscalYear IN ([2013/14-Q1], [2013/14-Q2], [2013/14-Q3], [2013/14-Q4])) b 

該命令失敗與INCORRECT SYNTAX NEAR '90'. Expecting '.', ID, or QUOTED_ID.

; 
WITH p1 AS (

SELECT WAITTIMES_DAY/7.0 AS waitWeeks, 

abj.fyq(surg_sx_date) as fiscalYear, 

SURG_SITE_ZONE 

FROM dbo.Surgery 
) 
SELECT * 

FROM p1 p 

PIVOT (abj.percentile(waitweeks,90) 

FOR fiscalYear IN ([2013/14-Q1], [2013/14-Q2], [2013/14-Q3], [2013/14-Q4])) b 

有沒有人遇到了這個Wierdness之前,以及他們是如何解決(其他比BRE akdown和寫入只有一個參數的百分位數函數,與第二變更爲90個默認)

感謝

斯文

+0

如果您可以發佈sql來創建表格並添加一些示例行,那將會很棒。另請參閱 - SQL小提琴。 – Steam

回答

1

當您使用CLR功能,您使用它們原樣。如果函數abj.median被寫入僅使用一個參數。它會像這樣工作,只有這樣。如果你想median能夠使用2個參數,你需要問這個函數的開發人員爲你重寫它。

+0

嗯,這個問題沒有傳遞給MEDIAN命令的許多參數(我寫了BTW)。問題是我還在CLR中編寫了一個PERCENTILE命令,它有兩個參數。這兩個函數之間的唯一區別是,PERCENTILE允許你說出你想要的百分位(例如90),而中位數實際上是第50百分位。無論如何。在我的代碼中,問題是關於爲什麼具有2個參數的CLR函數在PIVOT命令上失敗。事實證明出來,這是一個已知的問題... :) – user3358078

+0

悲傷,我無法刪除此作爲一個答案,因爲它肯定看起來並不像一個.... :( – user3358078

相關問題