0

アクティビティテーブルには、Activity、ActivityBaseTable、FieldNameの列があります

**Activity**    **ActivityBaseTable**    **FieldName**
Task            TaskBase                 CreatedOn
Task            TaskBase                 ModifiedOn

-のようなSQLステートメントが必要です

select Activity, ActivityBaseTable, FieldName, MIN([Date field], MAX([Date field])
from Activities

ここで、最小および最大の日付フィールドは-

select min(CreatedOn), Max(CreatedOn)
from TaskBase

また

select min(ModifiedOn), Max(ModifiedOn)
from TaskBase

これは1つのステートメントとして記述できますか?

4

1 に答える 1

1

おそらくこれを答えとして気に入らないでしょうが、列でテーブル名を使用しないようにデータモデルを修正できる場合は、それがはるかに望ましいでしょう. トピックの素晴らしい要約については、こちらをご覧ください。あなたが持っていることを読んだとき、私はうんざりしていますdozens of rows with different base ActivityBaseTables。私はこれが良いアイデアであるデザインに途方に暮れています。

使用している RDBMS に応じて、このサイトや、これを行うために必要になるストアド プロシージャの記述方法の例が多数あります。

データモデルを変更して、状況を完全に回避するようお願いします。

于 2012-06-07T18:59:22.490 に答える