2016-11-20 64 views
0

我有兩個表,其結構如下。 enter image description here將數據透視表作爲子查詢的結果集 - MSSQL

enter image description here

,我想從一個這樣的查詢結果。

CUSTOMER_CODE | CUSTOMER_NAME | LINE 1 | LINE 2 | LINE 3

我們必須將第一個表作爲關鍵點,但不確定。 請指教。 感謝

+0

你嘗試什麼?即使錯誤,您也可以發佈查詢 –

+0

線路如何連接到第二個結果集?只是一個隨機順序? –

+0

其實我正在如何開始。我在數據庫中表現不好,但我得到了一個線索,我們需要將第一個錶轉換爲樞軸,以便其行可以按列轉換。休息我不知道如何。 – Ans

回答

0

這是一個動態的條件聚合目前還沒有表名稱,所以TABLE1涉及到圖像1

Declare @SQL varchar(max)='' 
Select @SQL = @SQL+',[Line '+cast([Line#] as varchar(25))+']=max(case when [Line#]='+cast([Line#] as varchar(25))+' then EMail else '''' end)' 
From (Select Distinct [Line#] from Table1) A 
Order By [Line#] 

Select @SQL=' 
Select A.Customer_Code 
     ,B.Customer_Branch_Name'[email protected]+' 
From Table1 A 
Join Table2 B 
    on A.Customer_Code=B.Customer_Branch 
Group By A.Customer_Code,B.Customer_Branch_Name' 
Exec(@SQL) 

返回

enter image description here

+0

謝謝約翰。您的查詢看起來很有前途,因爲它會返回我需要的確切數據。其實我需要使用鏈接服務器來運行這個查詢。我根據我的服務器和表名稱編輯它,但得到語法錯誤。請在https://dl.dropboxusercontent.com/u/37107813/query.txt查找我的查詢,因爲由於評論框長度限制,我無法在此過去查詢。 – Ans

+0

@你可能必須將整個sql包裝在鏈接服務器上的一個openquery()或存儲過程中,請查看http://blog.falafel.com/t-sql-creating-dynamic-pass-through-queries-for -use與 - OPENQUERY / –