0

最も売れている商品のリストを返します。現在、私のクエリは過去7日間の注文の合計を返します。

また、過去7日間のアイテム数量の合計を戻す必要があります。これを行う方法を知りたいですか?@startDateに7日、@ endDateに13日を追加するだけだと思っていました(これには、今日の日付から7日後の日付がすでに設定されています)

現在、sum(amzOrdersItem.itemQty)ASOrders行でアイテムqtyを取得しています。これにより、基本的に注文された製品の数が返されます。

ALTER PROCEDURE [dbo].[GetHighestSellingItems]
@startDate datetime, 
@endDate datetime
AS
BEGIN

SET NOCOUNT ON;

SELECT    TOP (20) twProducts.sku, 
          twProducts.title + ' /  ' + LTRIM(CAST(twProducts.strength AS varchar(15))) + '%' AS Title, 
          sum(amzOrdersItem.itemQty) AS Orders, 
          twProducts.stock, aboProducts.asin, aboProducts.amzPrice
FROM      twProducts INNER JOIN
          amzOrdersItem ON twProducts.sku = amzOrdersItem.productSku INNER JOIN
          amzOrders ON amzOrdersItem.amzOrderId = amzOrders.amzOrderId INNER JOIN
          aboProducts ON twProducts.sku = aboProducts.sku
where    (amzOrders.orderDate between @startDate and @endDate) and  amzOrders.cancelled = 0
          group by twProducts.sku, twProducts.title, twProducts.strength, 
          twProducts.stock, aboProducts.asin, aboProducts.amzPrice
ORDER BY sum(amzOrdersItem.itemQty) DESC
END

これは便利かもしれませんが、これは私がクエリにパディングして結果を取得している.netコードです。

public List<GetHighSelling> GetHighSellingWeek()
    {
        DateTime? endDate = DateTime.Now.Date;
        DateTime? startDate = DateTime.Now.Date.AddDays(-6).Date;

        using (aboDataDataContext dc = new aboDataDataContext())
        {
            var query = from o in dc.GetHighestSellingItems(startDate, endDate)
                        select new GetHighSelling
                        {
                            sku = o.sku,
                            title = o.Title,
                            itemQty = o.Orders,
                            stock = o.stock,
                            amzPrice = o.amzPrice.ToString(),
                            asin = o.asin
                        };
            return query.ToList();
        }
    }
4

2 に答える 2

2

コードを次のように変更します

 DateTime startDate = DateTime.Now.Date.AddDays(-13).Date;
于 2012-09-19T13:38:53.580 に答える
1

7 日を差し引く必要があります。7 日を追加すると、今後 1 週間で最も売れている製品を求めることになります。

(それは非常に有用な情報ですが、データベースは未来を見ることができません。;)

終了日から開始日を計算できます。

DateTime? endDate = DateTime.Today.AddDays(-7);
DateTime? startDate = endDate.AddDays(-6);
于 2012-09-19T13:24:58.520 に答える