2017-06-30 11 views
-1

私のgoogle fooが失敗していて、答えが見つかりません。 私は売り手テーブルと取引テーブルという2つのテーブルを持っています。 売り手は複数の取引をしている場合も、取引がない場合もあります。 私は売り手ごとに1行を出力したいのですが、1つの取引タイプがあればそれを売り手名とともに出力します。まだ売り手を出力しないが、取引タイプをnullのままにする。SQLのwhere句のinclude if節が失敗する

現在のクエリ:

SELECT  dbo.seller.de_name, dbo.de_transaction.tr_type 
FROM   dbo.seller LEFT OUTER JOIN 
         dbo.de_transaction ON dbo.seller.de_rowid = 
dbo.de_transaction.tr_rowid_debtor 
WHERE  (dbo.de_transaction.tr_type = N'101') OR 
         (dbo.de_transaction.tr_type IS NULL) 

彼は101を持っているので、ボブ・スミスは、彼女は何のトランザクションを持っていないが、彼がトランザクションを持っているので、ジョン・ドウはありませんが、その101を入力していないので、ジェーン・ドウが出力されて出力されます SQLのフィドルがこれよりも優れていると私は説明します。 http://sqlfiddle.com/#!6/efc87/1

ありがとう!とても有難い。

答えて

1

あまりにも簡単でした。 where節は使用しないでください。

SELECT  dbo.seller.de_name, dbo.de_transaction.tr_type 
FROM   dbo.seller LEFT OUTER JOIN 
         dbo.de_transaction ON dbo.seller.de_rowid = 
dbo.de_transaction.tr_rowid_debtor AND dbo.de_transaction.tr_type = N'101'