0
我有3個表:左加入3個表,並顯示一個類似的動態樞軸
payorderType :
---------
typeID | TypeName |
1 | accounting |
2 | budget |
----------
step:
----------
StepID | StepName | typeID
1 | payorder | 1
2 | cheque | 1
3 | cheque | 2
----------
user:
----------
userID | StepName | StepID
7878 | payorder | 1
4547 | cheque | 2
6538 | cheque | 1
----------
我想使哪些用戶存在於行和列包括與步驟和payorderType的CONCAT的表。下同:
users | accounting_payorder | accounting_cheque | budget_cheque |
7878 | 1 | 0 | 0 |
4547 | 0 | 1 | 0 |
6538 | 0 | 1 | 0 |
我quesdtion是:如果我不知道payorderType行和步行數數,我應該怎麼寫呢? 我的腳本是在這裏: 首先,我在光標創建一個表CONCAT payorderType和步:
CREATE PROC sp_payOrderType
AS
BEGIN
DECLARE a CURSOR
FOR SELECT DISTINCT p.TypeName,s.StepName
FROM
dbo.PayOrderType p LEFT JOIN
dbo.vStep s ON s.TypeID = p.TypeID
FOR READ ONLY
DECLARE @payOrderType NVARCHAR(50),@stepName NVARCHAR(50)
DECLARE @SQL NVARCHAR(MAX)=''
OPEN a
FETCH NEXT FROM a INTO @payOrderType, @stepName
WHILE @@FETCH_STATUS=0
BEGIN
DECLARE @b VARCHAR(max), @b2 VARCHAR(max)
SELECT @b = ISNULL(@b ,'') +'['+ ISNULL(@payOrderType ,'')+ '____'+ISNULL(@stepName ,'')+ ']'+ ' NVARCHAR(1000) ,'
FETCH NEXT FROM a INTO @payOrderType,@stepName
END
CLOSE a
DEALLOCATE a
SELECT @SQL = 'ALTER table AA(' + SUBSTRING(@b,1, LEN(@b)-1) + ')'
SELECT @SQL
END
,但我不知道我應該如何與同列的行(用戶ID)?
可能重複的[SQL Server動態PIVOT查詢?](http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) – GurV