繁体   English   中英

SQL查询选择三个以上不同的地方

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM