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 回答