2014-10-09 76 views
0

我知道這可能很簡單,但它非常晚,對於我的生活我不記得如何去做。從其他表格中的一個字段創建表格或視圖

我有四個表,A,B和C.每個人都有一個ID,名稱和一些其他列。

我需要的是具有ID,Name_A,Name_B和Name_C的表E.所以如果我添加另一個名字來表示B,它會更新這個新的E表來包含它。

我試圖創建一個視圖:

Create View VwNames 
as 
SELECT  dbo.TableA.name AS NameA, 
       dbo.TableB.name AS NameB, 
       dbo.TableC.name AS NameC 

FROM   dbo.TableA, 
       dbo.TableB, 
       dbo.TableC 

但我是越來越有重複名稱的視圖,例如

Juan Pedro Mario 
Juan Mario Pedro 
Mario Juan Pedro 
Mario Pedro Juan 
Pedro Juan Mario 
Pedro Mario Juan 

我需要什麼樣的東西,顯示我:

Juan 
Mario 
Pedro 

Juan Mario Pedro 

任何幫助將非常感謝,我一直在尋找幾個小時。

感謝很多提前

編輯:

如何我的觀點是尋找截至目前:

Current View

+0

請使用加入與TableA中distinct.share列,B,C.There必須是一個ID列加盟 – Recursive 2014-10-09 06:32:49

+0

@Anand我試過使用十字接點,但我仍然在視圖中重複名稱。我知道這可能是facepalm值得,但我現在正在運行煙氣 – 2014-10-09 06:34:02

+0

提供了一些小提琴 – 2014-10-09 06:34:14

回答

1

你可以使用工會。就像這樣:

SELECT dbo.TableA.name FROM dbo.TableA UNION 
SELECT dbo.TableB.name FROM dbo.TableB UNION 
SELECT dbo.TableC.name FROM dbo.TableC 

這將讓你的輸出:

Juan 
Mario 
Pedro 
+0

請爲所有陳述添加'distinct' – Recursive 2014-10-09 06:37:14

+0

@Anand我認爲Union會給出不同的結果 – 2014-10-09 06:38:11

+0

@Ganesh_Devlekar:是一個工會得到不同的值 – Arion 2014-10-09 06:40:18

1

TRY這樣的:

Create View VwNames 
as 

SELECT distinct dbo.TableA.name AS NameA, 
       dbo.TableB.name AS NameB, 
       dbo.TableC.name AS NameC 

FROM   dbo.TableA TA LEFT JOIN 
       ON TA.col1=TB.col1 
       dbo.TableB TB LEFT JOIN 
       ON TB.col1=T.col1 
       dbo.Table T 
1
Create View VwNames 
as 
SELECT  distinct a.name AS NameA, 
       b.name AS NameB, 
       c.name AS NameC 

FROM   dbo.TableA a join 
       dbo.TableB b 
      on b.id=a.id 
      join 
       dbo.Table c 
      on c.id=b.id 
相關問題