SQL查询选择超过3个不同的地方

时间:2012-05-01 17:06:05

标签: c# sql

我遇到了SQL查询的问题,我需要一个消费者列表,他们已经购买了至少3种不同的产品,这些产品的供应商来自某个城市(让我们说纽约)。

Tabels列:

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();

1 个答案:

答案 0 :(得分:0)

我认为你需要一些Group-by的

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%正确 - 这有点难以测试......