1

基本的に、2番目のテーブルからトップ1を選択して結合するクエリを作成しようとしています:

SELECT Sum(pinfo.quantity + p.itemcount), 
   i.owner 
FROM   invoice i 
   JOIN purchase_info pinfo 
     ON pinfo.invoice = i.invid 
   JOIN (SELECT DISTINCT sku, 
                         productlineid, 
                         itemcount 
         FROM   products WHERE productlineid in (13, 14)) p 
     ON p.sku = pinfo.item 
WHERE i.owner = 22623 
GROUP BY i.owner

これは、やや無効な構文を持つlinqでの私の哀れな試みです。どんなアイデアでも大歓迎です。

(from i in _invoiceRepository.Table
 join pi in _purchaseInfoRepository.Table on i.InvoiceId equals pi.InvoiceId
 join p in (from p2 in _productRepository.Table where p2.Sku == pi.Item select new { p2.Sku, p2.ItemCount }).Take(1)
 on pi.Item equals p.Sku

 where i.MemberId == memberId &&
 (p.ProductLineId == (int)ProductLines.InkCartridges ||
  p.ProductLineId == (int)ProductLines.TonerCartridges)
 select pi.Quantity * p.ItemCount)
.DefaultIfEmpty(0)
.Sum();
4

1 に答える 1