0

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

1 に答える 1

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% 正しくない場合は申し訳ありません - これをテストするのは少し難しいです...

于 2012-05-01T17:13:58.167 に答える