0

私は3つのテーブルを持っています。人物トレーニング テーブルにほぼ最大の人数を挿入する必要があります。人物トレーニング テーブルには、必要な最大人数があります。

たとえば、私は 30 人の人を持っていて、必要な量は 27 のようです。27 人を人のトレーニング テーブルに挿入する必要があります。

同様に、必要な人数が 15 人、すでに割り当てられている 15 人の場合、何も挿入する必要はありません。

これが実現できるか

Person
Pk personId
firstName
lastName

Person_Training
PK FK personId
PK FK trainingId
signed   

Training
T trainingId
Location
personsNeeded
date

私はこれを試しましたが、役に立ちませんでした

INSERT INTO Person_Training(personId,trainingId)
SELECT personId , trainingId
  FROM Person , Training
 WHERE Training.date = '9-10-2013'
Having COUNT(Person.personId) < Training.personsNeeded 
4

1 に答える 1

0

欠けているのは、すべてのテーブルの結合だけのようです。

from Person 
inner join person_Training on person_Training.personID = Person.PersonID
inner join Training on Training.trainingID = Person_Training.trainingID

選択したすべてのフィールドの group by 句を忘れないでください。group by は、Having 句の前に移動します

Group by Person.personID, Training.trainingID
于 2013-04-11T20:31:07.760 に答える