-1

次の関係を使用します。

consultant(id,Name,Skill) 

CustomerCompany(Id,name Address, Phone, Email, WebAddr,Market)

project(id,StartDate,EndDate,ConsultantID,CustomerId,Days)

Invoice(id,Date,Customer,Amount,Status)

SQLとリレーショナル代数を使用して、次のシナリオを解決しようとしています

コンサルタントの名前と顧客の名前を見つけます。コンサルタントが顧客のために働いていて、顧客が 100,000 から 200,000 ポンドの範囲の請求書を受け取った場合

私が持っているSQLを使用して:

CustomerCompany C から I.amount、C.name、I.Customer=C.id および >all から I.amount、C.name を選択します (i.amount が 100 から 200 の場合、CustomerCompany から C.name、Con.Name、Con Consultant を選択);

関係代数:

amount = σ(Invoice, amount>=100 and amount<=200)

joininv= Ⓧ(amount, Customer, CustomerCompany, id)

joincon Ⓧ(joiniv, Consultant id, Project, ConsultantID)

π =(joincon, name, Name)

書いているのか間違っているのか疑問に思っていましたか?

助けてくれてありがとう!

4

1 に答える 1

0

これはトリックを行います

select 
con.Name
from CustomerCompany CustComp
inner join project PRO on PRO.CustomerId=CustComp.Id
inner join consultant con on con.id=PRO.ConsultantID
inner join Invoice Inv on Inv.Customer=CustComp.name
where Inv.Amount between 100 and 200

加入

于 2013-05-09T17:31:11.810 に答える