今年的WTD和Last Yeat WTD(4-5-4日历日期)数据在MSSQL中

时间:2017-06-19 13:18:03

标签: sql-server

此查询适用于本周应该是周日 - 周六。 我通常会在第二天提取数据,所以当我运行此报告时,总是会在第二天。

SELECT MAX(te.StoreID)                                                                                    AS StoreID, 
                                   SUM(te.Price * te.Quantity)                                                                        AS Sales, 
                                   SUM(te.Cost * te.Quantity)                                                                         AS Cost,  
                                   COUNT(DISTINCT t.TransactionNumber)                                                                AS Trxn,
                                   SUM(te.Quantity)                                                                                   AS Quantity 
                            FROM   TransactionEntry te 
                                   INNER JOIN [Transaction] t 
                                           ON te.TransactionNumber = t.TransactionNumber 
                                              AND te.StoreID = t.StoreID 
                                   LEFT JOIN item i 
                                          ON te.itemID = i.ID 
                                   LEFT JOIN Department d 
                                          ON i.DepartmentID = d.ID 
                            WHERE  d.ID <> 8 
                                   AND CONVERT(date, t.Time) >= dateadd(day, 1-datepart(dw, getdate()), convert(date, getdate()))
                                   AND CONVERT(date, t.Time) <= dateadd(day, 8-datepart(dw, getdate()), convert(date, getdate()))
                                   --DATEDIFF(week, t.Time, GETDATE()) = 2
                            GROUP  BY te.StoreID

这是去年同一周(4-5-4日历日期) 这个数据应该是(如果我今天提取数据)拉动2016年6月19日的数据。 如果我明天提取数据,我应该有6/19/2016 - 2016年6月20日的数据。

SELECT MAX(te.StoreID)                                                                                    AS StoreID, 
                                   SUM(te.Price * te.Quantity)                                                                        AS Sales, 
                                   SUM(te.Cost * te.Quantity)                                                                         AS Cost, 
                                   COUNT(DISTINCT t.TransactionNumber)                                                                AS Trxn, 
                                   SUM(te.Quantity)                                                                                   AS Quantity 
                            FROM   TransactionEntry te 
                                   INNER JOIN [Transaction] t 
                                           ON te.TransactionNumber = t.TransactionNumber 
                                              AND te.StoreID = t.StoreID 
                                   LEFT JOIN item i 
                                          ON te.itemID = i.ID 
                                   LEFT JOIN Department d 
                                          ON i.DepartmentID = d.ID 
                            WHERE  d.ID <> 8 
                               AND CONVERT(date, t.Time) >= dateadd(day, 2-datepart(dw, DateAdd(year,-1,getdate())), convert(date, DateAdd(year,-1,getdate())))
                               AND CONVERT(date, t.Time) <= dateadd(day, 9-datepart(dw, DateAdd(year,-1,getdate())), convert(date, DateAdd(year,-1,getdate())))
                            GROUP  BY te.StoreID

任何人都可以帮助我,为什么我的数据不正确????

先谢谢你了!

0 个答案:

没有答案