【问题标题】:Relational algebra and SQL solving [closed]关系代数和 SQL 求解
【发布时间】:2013-05-09 16:17:44
【问题描述】:

使用以下关系:

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 和关系代数来解决以下场景

找到顾问的姓名和客户的姓名,顾问曾在哪里为客户工作,客户收到的发票金额在 10 万到 20 万英镑之间

使用我拥有的 SQL:

选择 I.amount, C.name from CustomerCompany C, Invoice I where I.Customer=C.id 和 >all(select C.name, Con.Name from CustomerCompany, Con Consultant where 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)

我想知道是不是写错了?

感谢您的帮助!

【问题讨论】:

  • 学术界/研究之外几乎没有人使用或精通关系代数(我使用它已经将近 30 年了)。您可能会在cs.stackexchange.com 得到更好的回复

标签: sql-server join


【解决方案1】:

这样就可以了

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多