![](/img/trans.png)
[英]sql query: select all users where timeMade was more than hoursNeeded
[英]SQL Query selecting where there are more than 3 distinct
我在使用SQL查询时遇到问题,我需要一个列出至少购买了3种不同产品的消费者的列表,这些产品的供应商来自某个城市(比如说纽约)。
表格列:
Tb_Consumer .......... Con_ID(PK),名称,城市
Tb_Supplier ...................... Supp_ID(PK),名称,城市
Tb_Transactions ..... Tran_ID(PK),Supp_ID(FK),Con_ID(FK),PROD_ID(FK)
Tb_Products ............ Prod(ID(PK),名称
我到目前为止所拥有的:
var query8Result = (from c in context.Tb_Consumer
join t in context.Tb_Transactions on c.Con_ID equals t.Con_ID
join s in context.Tb_Supplier on t.Supp_ID equals s.Supp_ID
join p in context.Tb_Product on t.Prod_ID equals p.Prod_ID
where s.City == "New York"
select new { Name = c.Name }).Distinct();
我认为您需要一些分组依据
var query8Result = (from c in context.Tb_Consumer
join t in context.Tb_Transactions on c.Con_ID equals t.Con_ID
join s in context.Tb_Supplier on t.Supp_ID equals s.Supp_ID
join p in context.Tb_Product on t.Prod_ID equals p.Prod_ID
where s.City == "New York"
group c by new { c.Name, t.Prod_ID } into customerProducts
group customerProducts by new { customerProducts.Key.Name } into customers
where customers.Count() > 3
select g.Key);
抱歉,如果这不是100%正确-对此进行测试有点困难...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.