快速背景以便我的問題有意義:系統以問卷形式從用戶收集數據。用戶屬於組織,組織屬於部門,問題/計算(如調查問卷中所示)在部門之間各不相同。 (問題由用戶回答;計算由系統計算)。複雜的SQL樞軸查詢
下表存在:
部門(扇區,名稱)
組織(OrganisationID,名稱,扇區)
年(YearID,名稱)
問題( QuestionID,DisplayText,CommonName,SectorID)
答案(AnswerID,應答OrganisationID,YearID,QuestionID)
計算(CalculationID,DisplayText,的CommonName,扇區)
CalculationResults(CalculationResultID,結果,OrganisationID,YearID,CalculationID)
我需要以下面的方式來顯示數據:
,使這個partic事情非常複雜(對我而言)是問題以不同的方式在不同的行業中以不同的方式顯示給用戶,但其中一些問題仍然是常見的問題。例如。 「製造業銷售」與「銷售(製造業)」是一樣的。我需要使用CommonName
字段來確定通用性。
我已經設法使用SQL Pivot來接近我想要的 - SQL Fiddle(如果您運行SQL,您會注意到空值和「通用性」問題)。但是有些東西是從我嘗試丟失:
共性和列名 - 我需要的列名是
CommonName
領域,而不是QuestionID
領域。我只從選擇的答案表 - 我還需要從CalculationResults表,該表結構完全相同選擇。
編輯:與SQL小提琴數據期望的結果是: (這兩個塊帶有橙色角落需要一路向左移動,這樣一共有3列是。對問題 - 3個獨特CommonName
值接下來的3列是用於計算的3個獨特的CommonName
值我希望我是有道理的,如果不是讓我知道)
EDIT2:另一個編輯只。爲了娛樂。我當然想過重新設計數據庫,但現階段它不是一種選擇 - 在這個遺留系統上風險太大。在任何人看到設計和思想的情況下。我希望能夠以Pivot的形式獲得解決方案。
你能提供與演示您在sqlfiddle提供確切想要的結果(列名和值)畫面? – lad2025
@ lad2025,編輯原帖 – user982119