2014-08-28 100 views
0

我有下面顯示的數據集,它決定了我們數據庫中不同用戶的訪問權限。不過,我需要將其轉換爲數據集,其中user_code是列標題,Y/N數據是字段值。數據透視不包含聚合函數的數據列表

你知道我將如何去實現這個MSSQL內?我看了看PIVOT的功能,但看起來這不會爲我做這項工作,除非我錯過了一些重要的東西!

在此先感謝。我期望輸出的

例子:

--------------------------------------------------------------- 
|  Area   | AP | AM | AGN | AH | AUT | AR | etc...| 
--------------------------------------------------------------- 
--------------------------------------------------------------- 
| Accounts Team  | N | Y | N | Y | N | Y | ..... | 
--------------------------------------------------------------- 
| Administration Team | Y | N | Y | N | N | N | ..... | 

Screenshot

+0

只是好奇,爲什麼你認爲PIVOT不起作用?這正是PIVOT的目的。 – Taryn 2014-08-28 17:23:27

+0

您是否嘗試過PIVOT功能? – 2014-08-28 17:23:49

+1

你可以使用'PIVOT',你只需要使用正確的聚合函數(在這種情況下可以是MIN或MAX) – Lamak 2014-08-28 17:29:30

回答

1

只需使用MAXMIN彙整功能。當應用於字符串時,它們通常沒有意義,但滿足PIVOT語句的條件。

SELECT user_name, 
      [AP],[AM],[AGN],... 
FROM  my_table 
PIVOT  (
      MAX(access_ind) FOR user_code IN ([AP],[AM],[AGN],...) 
     ) pvt 

問題是,如果您有多個用戶訪問條目,您必須決定保留哪一條。

+1

這不是他想要的。在這個正常的樞軸中,Spreading元素變得有限,在這種情況下'User_Code'。他將不得不使用動態旋轉。 – 2014-08-28 18:07:07