一連の列が他の列のみにマップされているかどうかを確認するために、グループの後に個別を実行しようとしています。たとえば、以下のデータセットでは
Brand Product Location Customer Demand
Box A Chicago Chicago 10
Box B Chicago Milwaukee 20
Cart C Madison Milwaukee 10
Cart D Chicago Milwaukee 15
商品A、B、Cが有効です。ただし、D は有効ではありません。これは、ロケーションがシカゴで顧客がミルウォーキーの製品 B が存在するためです。LINQ クエリを作成して例外レコードを取得しようとしていますが、問題が発生しています。クエリが複雑になりすぎたと確信しています。
var vDuplicateSupplierLitho = from p in vRecords
group p by new
{
Location = p["Location"].Cast<string>(),
Customer = p["Customer"].Cast<string>()
} into grp
select new
{
Location = grp.Key.Location,
Customer = grp.Key.Customer,
Products = from a in grp
group a by new { Product = a["Product"].Cast<string>() } into apngrp
where apngrp.Count() > 1 && apngrp.Select(a => a["Product"]).Distinct().Count() > 1
from NonUniqueRecord in apngrp
select new
{
Product = apngrp.key.Product,
Location = g.key.Location,
Customer = g.key.Customer
Demand = NonUniqueRecord["Demand"]
}
};
ありがとう。