2011-09-15 9 views
-1

保留中の割り当てタスクを含むクエリを実行しようとしています。係属中の割当表は、別の表の同じ薬剤投与量列を参照する行「新薬」および「現在の薬物」を含む。私は以下のようなクエリを実行すると、私は結果が(私は同じ行の線量IDに新しいと現在の薬の両方に参加していことがわかりません取得:2つのSELECT文を結合し、ビューを作成するSQLクエリ

SELECT D_PENDING_POCKET_ASSIGN.Station_Id, 
    D_PENDING_POCKET_ASSIGN.Cabinet_Num, 
    D_PENDING_POCKET_ASSIGN.Drawer_Num, 
    D_PENDING_POCKET_ASSIGN.Pocket_Num, 
    D_PENDING_POCKET_ASSIGN.Assignment_Type, 
    D_PENDING_POCKET_ASSIGN.Requested_By, 
    D_PENDING_POCKET_ASSIGN.Requested_Dttm, 
    D_PENDING_POCKET_ASSIGN.Current_Drug_Dose_Id, 
    AHI_DRUG_DOSE.Drug_Display_Name, 
    D_PENDING_POCKET_ASSIGN.New_Drug_Dose_Id 
    FROM CRX_DATA.dbo.D_PENDING_POCKET_ASSIGN D_PENDING_POCKET_ASSIGN, 
    CRX_DATA.dbo.AHI_DRUG_DOSE AHI_DRUG_DOSE 
    WHERE (D_PENDING_POCKET_ASSIGN.Current_Drug_Dose_Id = 
     AHI_DRUG_DOSE.Drug_Dose_Id) 
    OR (D_PENDING_POCKET_ASSIGN.New_Drug_Dose_Id = 
      AHI_DRUG_DOSE.Drug_Dose_Id) 

をしかし、私はそれらを個別に実行したとき、私は希望を得ます。その結果、以下を参照してください:

SELECT D_PENDING_POCKET_ASSIGN.Station_Id, 
    D_PENDING_POCKET_ASSIGN.Cabinet_Num, 
    D_PENDING_POCKET_ASSIGN.Drawer_Num, 
    D_PENDING_POCKET_ASSIGN.Pocket_Num, 
    D_PENDING_POCKET_ASSIGN.Assignment_Type, 
    D_PENDING_POCKET_ASSIGN.Requested_By, 
    D_PENDING_POCKET_ASSIGN.Requested_Dttm, 
    D_PENDING_POCKET_ASSIGN.Current_Drug_Dose_Id, 
    AHI_DRUG_DOSE.Drug_Display_Name 
FROM CRX_DATA.dbo.D_PENDING_POCKET_ASSIGN D_PENDING_POCKET_ASSIGN, 
    CRX_DATA.dbo.AHI_DRUG_DOSE AHI_DRUG_DOSE 
WHERE (D_PENDING_POCKET_ASSIGN.Current_Drug_Dose_Id = 
     AHI_DRUG_DOSE.Drug_Dose_Id) 

SELECT D_PENDING_POCKET_ASSIGN.Station_Id, 
    D_PENDING_POCKET_ASSIGN.Cabinet_Num, 
    D_PENDING_POCKET_ASSIGN.Drawer_Num, 
    D_PENDING_POCKET_ASSIGN.Pocket_Num, 
    D_PENDING_POCKET_ASSIGN.Assignment_Type, 
    D_PENDING_POCKET_ASSIGN.Requested_By, 
    D_PENDING_POCKET_ASSIGN.Requested_Dttm, 
    AHI_DRUG_DOSE.Drug_Display_Name, 
    D_PENDING_POCKET_ASSIGN.New_Drug_Dose_Id 
FROM CRX_DATA.dbo.D_PENDING_POCKET_ASSIGN D_PENDING_POCKET_ASSIGN, 
    CRX_DATA.dbo.AHI_DRUG_DOSE AHI_DRUG_DOSE 
WHERE (D_PENDING_POCKET_ASSIGN.New_Drug_Dose_Id = AHI_DRUG_DOSE.Drug_Dose_Id) 

私は2つの選択querieを組み合わせることにより、ビューを作成する方法があるかどうかを知りたいです1つに?あなたが希望する結果セットを取得する必要がありますあなたのWHERE句でORANDを変更した場合は

はあなたに

+0

テーブルの構造はどのようなものですか?もっと具体的にする必要があります。 –

+0

最初のクエリの 'WHERE'句で' AND'を 'OR'に変更しようとしましたか? – JNK

+0

JNK - ありがとう!私がちょうどそれをしたら、私は自分の疑問に答えたでしょう!それはそれだったし、それは働いた。ありがとうございました。 – Shaji

答えて

2

あなたの質問は書かれているようにうまくいかないでしょう。あなたは、フィールドでのAHI_DRUG_DOSEテーブル内のレコードを検索するSQLを求めている

WHERE (D_PENDING_POCKET_ASSIGN.Current_Drug_Dose_Id =   AHI_DRUG_DOSE.Drug_Dose_Id) 
AND (D_PENDING_POCKET_ASSIGN.New_Drug_Dose_Id =   AHI_DRUG_DOSE.Drug_Dose_Id) 

はCurrent_drug_dose_idとNew_Drug_dose_Idの両方に等しいDrug_Dose_ID。それらのIDが同じでない限り、1つのフィールドに両方の値が含まれていることはできません。

これを代わりに試してください。

WHERE (D_PENDING_POCKET_ASSIGN.Current_Drug_Dose_Id =   AHI_DRUG_DOSE.Drug_Dose_Id) 
OR (D_PENDING_POCKET_ASSIGN.New_Drug_Dose_Id =   AHI_DRUG_DOSE.Drug_Dose_Id) 
+0

+1 – JNK

3

ありがとうございます。

関連する問題