2014-11-03 104 views
-1

看起來像這樣應該相當簡單,但我已經搜索和搜索,現在嘗試和嘗試了一段時間,它只是超越了我。將行數據轉換爲列。訪問

我有一個表命名爲 「Antenna_Electrical_Parameters」,看起來像這樣:

網站ID天線ID電器控制器電動傾斜

Site_106 3端口4月1日至2日

Site_106 3端口3-4 4

Site_106 4端口1月1日至2日

Site_106 4端口4月3日至四日

Site_106 4端口4月5日至六日

Site_106 5端口1月1日至2日

Site_106 5端口7月3日至4日

Site_106 5端口七月5日至6日

Site_106 6端口10月一日至二日

Site_106 6端口7月3日至4日

Site_106 6端口7月5日至6日

Site_106 7端口四月1日至8日

Site_106 8端口1-8條1

Site_106 9端口3月1日至八日

我想建立將產生這樣的查詢:

站點ID天線ID控制器1控制器1電動傾斜控制器2控制器2電動傾斜控制器3控制器3電動傾斜

Site_106 3端口1-2 4端口3-4 4

Site_106 4端口1--2 1端口4月3日至4日端口4月5日至六日

Site_106 5端口1--2 1端口七月3日至四日端口七月5日至6日

Site_106 6端口1 -2 10端口7月3日至4日端口7月5日至六日

Site_106 7端口4月1日至八日

Site_106 8端口1-8條1

Site_106 9端口三月一日至8日

我還需要將查詢作爲子窗體的源代碼。使用交叉表查詢,我有點接近我想要的格式,但不能將該查詢用作子表單的源。

謝謝。

How I would like to see the data

+0

你能收拾你的數據嗎?現在真的必須讀。 – Dominique 2014-11-03 18:23:15

+1

您可以在子窗體中使用交叉表,但不能編輯結果。 – Fionnuala 2014-11-03 18:24:49

+0

對不起,發佈後發現格式很奇怪。試圖張貼圖片,但它不會讓我這樣做,因爲我是新的。清理它最好的我可以想象如何,但它仍然看起來有點奇怪。我希望這是有道理的。如果您有關於如何從Excel中發佈數據的提示,我很樂意編輯這些數據。謝謝! – Stringpark 2014-11-03 18:57:42

回答

0

我最終建立一個選擇查詢,先叫qry_ControllerSequence:。

SELECT T1 [網站ID],T1 [天線ID], 「控制器」 & COUNT(*)AS ControllerSequence, t1。[Electrical Controller],t1。[Electrical Tilt] FROM Antenna_Electrical_Parameters AS t1 LEFT JOIN Antenna_Electrical_Parameters AS t2 ON(t2。[ID] < = t1。[ID])AND(t2。[Site ID] = t1。站點ID])AND(t2。[天線ID] = t1。[天線ID]) GROUP BY t1。[站點ID],t1。[天線ID],t1。[電氣控制器],t1。[電動傾斜] ;

然後2個交叉表查詢,第一被叫qry_ControllerPorts:。

變換優先(。qry_ControllerSequence [電機控制器])AS [FirstOfElectrical控制器] SELECT qry_ControllerSequence [網站ID],qry_ControllerSequence [天線ID] FROM qry_ControllerSequence GROUP BY qry_ControllerSequence。[Site ID],qry_ControllerSequence。[天線ID] PIVOT qry_ControllerSequence.ControllerSequence In(「Controller 1」,「Controller 2」,「Controller 3」,「Controller 4」);

而第二個稱爲qry_ControllerET:

變換優先(qry_ControllerSequence [電動傾斜]。)AS [FirstOfElectrical傾斜] SELECT qry_ControllerSequence [網站ID],qry_ControllerSequence [天線ID] FROM qry_ControllerSequence GROUP BY。 qry_ControllerSequence。[站點ID],qry_ControllerSequence。[天線ID] PIVOT qry_ControllerSequence.ControllerSequence In(「Controller 1」,「Controller 2」,「Controller 3」,「Controller 4」);

然後使用選擇查詢以使它們一起:。

SELECT qry_ControllerPorts [網站ID],qry_ControllerPorts [天線ID],qry_ControllerPorts [控制器1],qry_ControllerET [控制器1] AS [控制器1。 ET],qry_ControllerPorts。[Controller 2],qry_ControllerET。[Controller 2] AS [Controller 2 ET],qry_ControllerPorts。[Controller 3],qry_ControllerET。[Controller 3] AS [Controller 3 ET],qry_ControllerPorts。[Controller 4], qry_ControllerET [控制器4] AS [控制器4 ET] FROM qry_ControllerPorts INNER JOIN qry_ControllerET ON(qry_ControllerPorts。[天線ID] = qry_ControllerET。[天線ID])AND(qry_ControllerPorts。[站點ID] = qry_ControllerET。[站點ID]) ;

它不會讓我使用select查詢作爲子表單的源,直到在PIVOT函數中添加「In(」Controller 1「,」Controller 2「,」Controller 3「,」Controller 4「)」在交叉表查詢的末尾(如上面的代碼所示)。

如果有人知道這樣做更容易或更乾淨的方式,請讓我知道。否則,這個解決方案的作品

謝謝。