我在表中记录了所有分支机构的所有销售额的以下数据。我需要弄清楚这家店是卖它的产品比别人快,使我们可以决定要发送的库存到存储SQL - 在哪个商店查询中查找哪个产品销售得更快
样本数据:
Ref | Colour | Size | Branch | QtySold | DatePosted | BLU | 01 | ABC | 1 | 2016-08-01 17:37:29.310 | BLU | 01 | CFR | 1 | 2016-08-01 17:37:29.310 | BLU | 01 | CFD | 2 | 2016-08-01 17:37:29.310 021456 | YEL | 06 | ABC | 5 | 2016-08-02 17:37:29.310 021456 | YEL | 06 | AMC | 2 | 2016-08-02 15:37:29.310
我写了下面的SP,它接受没有fromdate和todate和其他参数。
ALTER PROCEDURE [dbo].[GetSalesByDate]
(
@FromDate datetime = NULL,
@ToDate datetime = NULL,
@Ref nvarchar(MAX) = NULL,
@ColourCode nvarchar(20) = NULL,
@StoreCode nvarchar(6) = NULL,
@SizeIndex nvarchar(3) = NULL
)
AS
BEGIN
SELECT
YEAR(S.DatePosted) 'Year', DATEPART(week,S.DatePosted) NumberOfTheWeek,
S.Ref,
S.Colour ColourCode,
S.Sno SizeIndex,
S.Branch StoreCode,
DATEDIFF(day,@FromDate, @ToDate) TotalDays,
SUM(S.Qty) QtyPerUnit
FROM SalesHistory S
WHERE
(S.DatePosted BETWEEN @FromDate AND @ToDate)
AND (S.Ref IN (SELECT * from dbo.SplitList(@Ref, ',')) OR @Ref IS null)
AND (S.Colour = @ColourCode OR @ColourCode IS null)
AND (S.Sno = @SizeIndex OR @SizeIndex IS null)
AND (S.Branch = @StoreCode OR @StoreCode IS NULL)
GROUP BY
S.Branch, YEAR(S.DatePosted), DATEPART(week,S.DatePosted),S.Ref,S.Colour,S.Sno
ORDER BY
S.Ref, S.Colour
我觉得上面的SP不回我想要什么...... 我想每个编号,颜色,尺寸(产品)的销售中给出的每一个分支
- 比较FromDate和ToDate,返回该期间的数据,并将其与上周和去年同一周进行比较。
任何人都可以在这里帮助请....
结果应该是这样的。
Year | No.OfThheWeek | Ref | Colour | Size | Branch | TotalQtySoldForThePeriod | LastWeekTotalQtySold | LastYearTotalQtySold 2016 | 32 || BLU | 01 | ABC | 125 | 205 | 310 2016 | 33 || BLU | 01 | ABC | 55 | 155 | 214 2016 | 33 | 021456 | YEL | 06 | AMC | 74 | 46 | 83
首先你应该确定你的结果应该是什么样子。请问您可以将样品结果添加到您的请求中吗? –
在我的问题中添加了结果... –