2

AssetIdAssetTableを格納するというテーブルがあります

BookIdCurrentOperationsTaxAssetBookTableの 2 つのフィールドを格納する別のテーブルがあります。

AssetIdBookIdAssetBookを外部キーとして格納する別のテーブル。

現在、 AssetBookTable.CurrentOperationsTax に基づいてレコードをフィルター処理する必要がある状況があります。

これは、私が今得ているものです。 これは私がこれまでに達成したことです

そして、これは私が欲しいものです: これが私が達成したいことです

**

ロジックは、CurrentOperationsTax フィールドに Current/Operation/Tax のいずれかを持つ AssetId ごとに 1 つの BookId のみが必要であるということです。

**

これまでに作成された SQL フィドルは次のとおりです。

SQLフィドル

どんな助けでも大歓迎です。

4

2 に答える 2

1

を簡単に削除できますGROUP BY BookID。ただし、もちろん、BookID を何らかの方法で集約する必要があります。ここでは MIN() 関数を使用します。

SELECT
   ab.AssetId
  ,MIN(ab.BookId) as BookID
  ,abt.CuurentOperationsTax
FROM
 AssetBook ab
JOIN AssetTable at ON at.AssetId = ab.AssetId
JOIN AssetBookTable abt ON abt.BookId = ab.BookId
GROUP BY 
   ab.AssetId
  ,abt.CuurentOperationsTax

http://sqlfiddle.com/#!6/e3477/42

于 2013-09-06T18:02:43.303 に答える