2013-05-09 2 views
-1

Используя следующие соотношения:Реляционная алгебра и SQL решения

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) 

Im пытаясь выработать следующий сценарий, используя SQL и реляционная алгебра

Найти имена консультантов и имена клиентов, где консультант работает для клиента, а клиент получил счет-фактуру в диапазоне от GBP 100k до 200k

Использование SQL у меня есть:

Выберите I.amount, C.name из CustomerCompany C, Invoice I где I.Customer = C.id и> all (выберите C.name, Con.Name из CustomerCompany, Con Consultant, где i.amount между 100 и 200);

Реляционная алгебра:

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

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

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

π =(joincon, name, Name) 

мне было интересно, если запись или нет?

Спасибо за помощь!

+2

вряд ли кто за пределами Academia/Research использует или опытен с реляционной алгебры (почти 30 лет с тех пор я использовал его). Вероятно, вы получите лучший ответ на http://cs.stackexchange.com – RBarryYoung

ответ

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 

JOIN

Смежные вопросы