1

SQL ServerManagementStudioを使用してデータベースを開発しようとしています。

Grandparent table
Resource
ResourceID_PK   int
Project     nvarchar(5)
Model       nvarchr(15)

Parent table
Machine
MachineID_PK    int
Model_UK        nvarchar(15)
Type
Brand
EmptyWeight

Child tables
DumpTruck   .       Excavator       Loader
DumpTruckID_PK      ExcavatorID_PK  Loader_ID       int
Model_UK            Model_UK        Model_UK        nvarchar(15)
Capacity            Capacity        Capacity

モデル列はデータベース全体で一意です。祖父母のテーブルから容量列に到達する必要があります。すべての機械が「CAT966」のように異なるモデルを持つため、各子テーブルのモデル列は一意です。

同じモデルを持つ子テーブルの1つを読み取るには、祖父母モデル列を使用する必要があります。

マシンのモデルを入力し、対応する子テーブルから容量を返すac#プロジェクトを開発します。

4

1 に答える 1

1

テーブルを結合するには、親テーブルにResourceID_PKが必要であり、子テーブルにMachineID_PKが必要です。次に、テーブルを結合して、GrandparentテーブルからCapacity列に到達できます。

編集

  1. ResourceID_PKをマシン(親テーブル)に追加します
  2. MachineID_PKを子テーブルに追加します

モデルに基づいて容量を取得するには、次のクエリを使用します。

Select Capacity
From DumpTruck c
Join Machine p on c.DumpTruckID_PK=p.MachineID_pk
Join Resource gp on gp.ResourceID_PK=p.ResourceID_PK
where gp.Model='X'

(小さな警告です。このクエリはテストしていません。)

于 2012-12-12T15:08:19.150 に答える