2017-10-16 25 views
0

我试图使单个数据源,它将有几个数据类型,这些数据类型稍后将在我们的BI应用程序中被ID'ed(并且我不能改变任何东西),每个类型由列类型 like in下面的例子,所以基本上我有两个表,我想同时加入/联盟,我试图加入连接,并不能使它的工作如此的票价。你认为这是可行吗?在输入表格中有一些动态变化,所以很难使用预设列来服务所有表格。 这是我输入:TSQL挑战一步加入和结合,是否可悲?

;WITH cte1 AS (SELECT 'A' type, 'alpha1' rec1, 'bravo1' rec2 UNION 
SELECT 'A' type, 'alpha2' rec1, 'bravo2' rec2 UNION 
SELECT 'A' type, 'alpha3' rec1, 'bravo3' rec2) 
, cte2 AS (
SELECT 'X' type, 'zulu01' recX UNION 
SELECT 'X' type, 'zulu02' rexX) 

,这是希望输出

;WITH cteWanted AS (SELECT 'A' type, 'alpha1' rec1, 'bravo1' rec2, NULL recX UNION 
SELECT 'A' type, 'alpha2' rec1, 'bravo2' rec2, NULL recX UNION 
SELECT 'A' type, 'alpha3' rec1, 'bravo3' rec2, NULL recX UNION 
SELECT 'X' type, NULL rec1, NULL rec2, 'zulu01' recX UNION 
SELECT 'X' type, NULL rec1, NULL rec2, 'zulu02' recX) 

SELECT * FROM cteTarget 

enter image description here

+0

你是怎么试着'联合'cte1'和'cte2'的?从cte1 union中选择[type],rec1,rec2,Cast(NULL作为VarChar(10))作为recX所有从cte2'选择[type],NULL,NULL,recX? – HABO

+0

HI Habo,当然它会工作,但列设置是在我的情况下改变,所以我尝试去用不同的东西和pref不动态的SQL。 –

+0

也许你可以向我们解释Rec1,rec2,Recx是如何得出这些值的。这是SQL服务器? – maSTAShuFu

回答

0

的Tx一切,我意识到,我需要去与哈勃的解决方案。