2017-03-09 18 views
0

2つのテーブル(SQL)EntityAttachment EAとUnitInventory UIがあります。 UI.StockNumberには、EntityAttachmentテーブルに格納されている添付ファイル(ドキュメント)を含めることができます。戻り値がテーブルに存在しないか、値と等しくない

どのDistinct UI.StockNumberにもEAテーブルにエントリがない(ドキュメントがないことを意味する)ものを特定し、そのリストをDistinct UI.StockNumberに結合しようとしていますが、エントリはありますがEA.Extension = 'jpg'だから実際には、私は拡張子= 'jpg'を持たないUI.StockNumberを探しています。

UI.UnitInventoryID = EA.EntityID

これは2つのテーブルを結合し、EA.Extensionsの=「JPG」を除外するのは簡単だが、その後、私はEAには全く存在していないものを欠場表。私は迷っていて、ずっと長い間試しています。私もすべてのNULL値(EAテーブルには存在しないもの)を返すことができましたが、pdf、xlsなどの拡張子を持つがjpgは含まないものはありません。

これは十分な情報ですか?私はこれに苦しんでいます。

答えて

1

あなたは、このクエリを使用することがあります。

SELECT DISTINCT ui.stocknumber 
FROM unitinventory ui 
WHERE NOT EXISTS (
    SELECT 1 
    FROM entityattachment 
    WHERE entityid = ui.unitinventoryid 
     AND extension = 'jpg' 
    ); 

または:

SELECT DISTINCT ui.stocknumber 
FROM unitinventory ui 
LEFT JOIN entityattachment ea 
ON ea.entityid = ui.unitinventoryid 
WHERE ea.extension IS NULL 
    OR ea.extension <> 'jpg'; 
+0

オプション2は、私のアプローチだったでしょう。 – dstepan

+0

彼らは動作しますが、アクティブなユニットと特定のタイプのユニットを除外するために別のテーブルに加わる必要があります。このレイヤーはどこに追加しますか?テーブルはUnitMaster UMで、[ストック番号] = ui。[StockNumber]です。 –

+0

@JordonGriffith他のリクエストが必要な場合は、IMOに他の質問を投稿する必要があります。テーブル構造、サンプルデータ、予想される出力を追加して、その結果を達成する方法を説明してください。 (あなたのコメントでは、INNER JOINを追加するだけでもいいですか、それより複雑かもしれませんね)。とにかく、私の質問があなたの最初の質問のために働くなら、それを他の人が参照する答えとしてマークしてもよいでしょう。 –

関連する問題