UPDATESQL支點,沒有聚集
我已經修改了SQL小提琴,使部門名稱更能反映什麼,我試圖去。如果你看小提琴有3個選擇語句。
- 列出了正確的順序部門從我嘗試了數據
- 結果在樞軸
- 假SELECT以顯示什麼,我試圖去
在結果我的樞軸嘗試第二行顯示的是departmentLevel1的空值,而departmentLevel3不應該在這一行中。我嘗試過row_number和分區的各種組合,但我似乎無法弄清楚這一點。 完全沮喪!
這裏是我的最新小提琴http://sqlfiddle.com/#!3/175af/40
之前你投票CLOSE 請仔細閱讀這個問題,然後讀取選址爲重複的問題。這個問題更加簡單。我的問題不僅要求關於樞軸轉動,而且要將樞軸結果分組,並且要做更多的轉動起止時間。我認爲只是看標題。如果你不想閱讀完整的問題,但不要認爲它與其他類似題目的問題一樣。
我意識到我必須有一個聚合,所以我嘗試使用max,但我真的只是試圖以更多的表格方式顯示此信息,所以我可以將其加入到另一個數據集。
這裏是開始時的資料:
select departmentID, departmentParentID, departmentName, departmentGroupSortBy, departmentLevel, sortBy
from vDepartmentList
where regionID = 3
order by departmentGroupSortBy, departmentLevel, sortBy
departmentID departmentParentID departmentName departmentGroupSortBy departmentLevel sortBy
---------------------------------------------------------------------------------------------------
111 neth test dept 1 1 1
115 111 test sub1 1 2 1
112 test2 2 1 2
113 112 new sub2 2 2 1
114 112 new sub 3a 2 2 2
116 114 should L3 2 3 1
如果我運行此查詢:
select departmentParentID, [1] as departmentLevel1, [2] as departmentLevel2, [3] as departmentLevel3
from (
select departmentParentID, departmentLevel, departmentName
from vDepartmentList
where regionID = 3
) p
pivot (
max(departmentName)
for departmentLevel in ([1],[2],[3])
) as pvt
order by departmentParentID
我得到這樣的結果:
departmentParentID departmentLevel1 departmentLevel2 departmentLevel3
----------------------------------------------------------------------------
test2
111 test sub1
112 new sub2
114 should L3
但我想獲得的:
departmentParentID departmentLevel1 departmentLevel2 departmentLevel3
----------------------------------------------------------------------------
111 neth test dept test sub1
112 test2 new sub2
112 test2 new sub 3a should L3
有沒有人對我出錯的地方有什麼建議?
在您的子查詢中使用'row_number()'爲parentid級別的每個項目創建一個唯一值。這將允許多行返回 – Taryn
可能重複的[SQL Server:透視功能,需要透視表](http://stackoverflow.com/questions/20103646/sql-server-pivot-functionality-need-to- pivot-a-table) – Lamak
沒有不重複。部門級別的複雜性使得它與簡單地調整開始和停止時間大不相同。也許這是我的問題的一部分,試圖做一次做許多事情 – Lance