最も売れている商品のリストを返します。現在、私のクエリは過去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();
}
}