2017-03-06 4 views
0

を作成します。私はそのビューを作成したい私は、データベース内の2つのテーブル持っビュー複数のテーブルと異なるカラム名

StationStatusID DetectorID DateTime StationModeID Status 
     1    1541  time   2   0.74 

にStationStatus DetectorStatusに

DetectorStatusID DetectorID DateTime DetectorModeID Status 
     1    471   time   2   0.7 

を次のようになります。

StationStatusID DetectorStatusID DetectorID DateTime StationModeID DetectorModeID Status 
     NULL     1    471   time   NULL    2   0.7 
     1     NULL   1541  time   2     NULL   0.74 

、私はこのようなビューを作成する場合:

CREATE view statusoverview AS 
    SELECT * FROM [GMS_MAN].[dbo].[DetectorStatus] 
    UNION ALL 
    SELECT * FROM [GMS_MAN].[dbo].[StationStatus] 

を私は1つのテーブル内のすべての結果を取得します。しかしStationModeIDDetectorModeIDなどの内側に

は、どのように私は与えられた例のように見えるビューを作成するのですか?

+1

が同様にNULL列を選択してはならないと思います。 – jarlh

+0

* SELECT * FROM *を変更して列+ NULLSを追加すると、次のように表示されます。**ビュー名の列1に列が指定されていません** – Mitch

答えて

1

あなたは、両方の結果セットは、あなたが望むすべての列含まれていることを確認する必要があります。カラム名は、最初のクエリから取られていることを

CREATE view statusoverview AS 
SELECT null as StationStatusID, 
     DetectorStatusID, 
     DetectorID, 
     DateTime, 
     null as StationModeID, 
     DetectorModeID, 
     Status 
FROM [GMS_MAN].[dbo].[DetectorStatus] 
UNION ALL 
SELECT StationStatusID, 
     null, 
     DetectorID, 
     DateTime, 
     StationModeID, 
     null, 
     Status 
FROM [GMS_MAN].[dbo].[StationStatus] 

注意を、それはすべての列に名前を付ける必要があります。 2番目の方法は、それが供給している列の名前を省略することができます。null sです。

+0

ありがとうございました!それは私に私が望む正確な結果を与えている。また非常に明確で分かりやすい書かれています。 5分で答えることができます。 – Mitch

1
SELECT null as StationStatusID,DetectorStatusID,DetectorID,DateTime,null StationModeID,DetectorModeID,Status FROM [GMS_MAN].[dbo].[DetectorStatus] 
    UNION ALL 
    SELECT StationStatusID, null, DetectorID,DateTime,StationModeID, null ,Status FROM [GMS_MAN].[dbo].[StationStatus] 

いくつかの列のスペルミスを行う私が持っているかもしれないが、それは、あなたがSELECT *を使用することはありません、あなたがあなたのテーブルを持っているしたい列を指定すること

0

まあのようなものにiwll:

あなたが選ぶどのような
CREATE view statusoverview AS 
SELECT detector.*, station.StationStatusID, station.StationMode,station.Status 
FROM DetectorStatus detector 
LEFT JOIN StationStatus station ON station.DetectorID=detector.DetectorID. 

、私はあなたが「SELECT *、しかし、あなたが必要なものを指定し、」

関連する問題