1

午後、

SQL Server 2008 R2データベースから製品のリストを返そうとしていますが、最新の日付の結果のみを返したいのです。

ただし、以下のコードは、日付が古いものも含めて、すべてのアイテムを返すようです。最新の日付だけで結果を取得するにはどうすればよいですか。

var query = (from a in dc.aboProducts
             join t in dc.twProducts on a.sku equals t.sku
             join lp in dc.LowestPrices on a.asin equals lp.productAsin
             select new GetLowestPrices
             {
             productAsin = lp.productAsin,
             sku = t.sku,
             title = t.title,
             twprice = Convert.ToString(t.twPrice),
             lowprice = Convert.ToString(lp.price),
             amzprice = Convert.ToString(lp.tweAmzPrice),
             lastupdated = Convert.ToDateTime(lp.priceDate)
             }).Distinct().OrderBy(ti => ti.title);
return query.ToList();
4

2 に答える 2

0

次のようなものを試してください。

var query =
    from a in dc.aboProducts
    join t in dc.twProducts on a.sku equals t.sku
    join lp in dc.LowestPrices on a.asin equals lp.productAsin
    select new GetLowestPrices
    {
        productAsin = lp.productAsin,
        sku = t.sku,
        title = t.title,
        twprice = Convert.ToString(t.twPrice),
        lowprice = Convert.ToString(lp.price),
        amzprice = Convert.ToString(lp.tweAmzPrice),
        lastupdated = Convert.ToDateTime(lp.priceDate)
    };

var lookup =
    query
        .ToLookup(x => x.sku)
        .Select(x => x.OrderByDescending(y => y.lastupdated).First())
        .OrderBy(x => x.title);

return lookup.ToList();
于 2012-08-30T12:18:24.123 に答える
0

Distinctは既存のリストには適用されませんが、新しいリストを作成するため、次のように新しいリストに追加する必要があります。

val DistinctList = ExistingList.Distinct().ToList();
于 2012-08-30T12:20:16.897 に答える