|
@@ -0,0 +1,116 @@
|
|
|
|
|
+/*
|
|
|
|
|
+----------------------------------------------------------------------------------
|
|
|
|
|
+◑ SP Name : dbo.[USP_SYS_DailySalesByCategory_and_Distribute] ''
|
|
|
|
|
+◑ Description : Category & 입점/사입 별 일매출
|
|
|
|
|
+◑ Called by :
|
|
|
|
|
+◑ Input Parameters :
|
|
|
|
|
+◑ Output Parameters :
|
|
|
|
|
+◑ Exec :
|
|
|
|
|
+exec [dbo].[USP_SYS_DailySalesByCategory_and_Distribute] '2016-07-06'
|
|
|
|
|
+◑ Change History
|
|
|
|
|
+----------------------------------------------------------------------------------
|
|
|
|
|
+Date Author Description
|
|
|
|
|
+----------------------------------------------------------------------------------
|
|
|
|
|
+2016-07-05 구성근 추가
|
|
|
|
|
+2017-04-21 송상호 입점/사입/위탁 구분
|
|
|
|
|
+----------------------------------------------------------------------------------
|
|
|
|
|
+*/
|
|
|
|
|
+CREATE PROCEDURE [dbo].[USP_SYS_DailySalesByCategory_and_Distribute]
|
|
|
|
|
+ @QueryDate Nvarchar(10)
|
|
|
|
|
+
|
|
|
|
|
+AS
|
|
|
|
|
+BEGIN
|
|
|
|
|
+ SET NOCOUNT ON;
|
|
|
|
|
+
|
|
|
|
|
+ DECLARE @StartDatetime Datetime
|
|
|
|
|
+ DECLARE @EndDatetime Datetime
|
|
|
|
|
+
|
|
|
|
|
+ If @QueryDate Is Null Or @QueryDate = ''
|
|
|
|
|
+ SET @StartDatetime = Convert(Datetime, Convert(Nvarchar(10), GetDate(), 121))
|
|
|
|
|
+ Else
|
|
|
|
|
+ SET @StartDatetime = Convert(Datetime, @QueryDate)
|
|
|
|
|
+
|
|
|
|
|
+ SET @EndDatetime = DateAdd(Day,1,@StartDatetime)
|
|
|
|
|
+
|
|
|
|
|
+ DECLARE @ProductCategoryList Table (
|
|
|
|
|
+ FirstCategoryNo Int, FirstCategoryName Nvarchar(50), FirstCategoryCode Nvarchar(10)
|
|
|
|
|
+ , CategoryNo Int, CategoryName Nvarchar(50), CategoryCode Nvarchar(10)
|
|
|
|
|
+ )
|
|
|
|
|
+ INSERT INTO @ProductCategoryList
|
|
|
|
|
+ SELECT A.CategoryNo, A.CategoryName, A.CategoryCode, B.CategoryNo, B.CategoryName, B.CategoryCode
|
|
|
|
|
+ FROM dbo.TB_CAT_ProductCategory As A WITH (NOLOCK)
|
|
|
|
|
+ INNER JOIN dbo.TB_CAT_ProductCategory As B WITH (NOLOCK) ON A.CategoryNo=B.FirstCategoryNo
|
|
|
|
|
+ WHERE A.FirstCategoryNo IS NULL AND A.CategoryNo <> 221 AND A.CategoryCode >= 'L'
|
|
|
|
|
+ AND LEN(B.CategoryCode)=4
|
|
|
|
|
+
|
|
|
|
|
+ DECLARE @OrderResult Table (
|
|
|
|
|
+ OrderSlipNo Bigint
|
|
|
|
|
+ )
|
|
|
|
|
+ DECLARE @CancelResult Table (
|
|
|
|
|
+ OrderSlipNo Bigint
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ INSERT INTO @OrderResult
|
|
|
|
|
+ SELECT A.OrderSlipNo
|
|
|
|
|
+ FROM dbo.TB_ORD_OrderSlip As A WITH (NOLOCK)
|
|
|
|
|
+ WHERE A.DateSales > @StartDatetime AND A.DateSales < @EndDatetime
|
|
|
|
|
+ AND A.IssueTypeCd = '정상'
|
|
|
|
|
+
|
|
|
|
|
+ INSERT INTO @CancelResult
|
|
|
|
|
+ SELECT A.OrderSlipNo
|
|
|
|
|
+ FROM dbo.TB_ORD_OrderSlip As A WITH (NOLOCK)
|
|
|
|
|
+ WHERE A.DateSales > @StartDatetime AND A.DateSales < @EndDatetime
|
|
|
|
|
+ AND A.IssueTypeCd = '취소'
|
|
|
|
|
+
|
|
|
|
|
+ DECLARE @OrderAmoutList Table (
|
|
|
|
|
+ FirstCategoryNo Int, FirstCategoryName Nvarchar(50),DistributionCd Nvarchar(10), OrderAmount Money
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ DECLARE @CancelAmoutList Table (
|
|
|
|
|
+ FirstCategoryNo Int, FirstCategoryName Nvarchar(50),DistributionCd Nvarchar(10), CancelAmount Money
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ INSERT INTO @OrderAmoutList
|
|
|
|
|
+ SELECT D.FirstCategoryNo, D.FirstCategoryName,C.DistributionCd, SUM((IsNull(A.UnitPrice,0)+IsNull(A.CouponPrice,0))*A.Qty)
|
|
|
|
|
+ FROM dbo.TB_ORD_OrderSlipItem As A WITH (NOLOCK)
|
|
|
|
|
+ INNER JOIN @OrderResult As B ON A.OrderSlipNo=B.OrderSlipNo
|
|
|
|
|
+ INNER JOIN dbo.TB_ORD_OrderItem As C WITH (NOLOCK) ON A.OrderItemNo=C.OrderItemNo
|
|
|
|
|
+ INNER JOIN @ProductCategoryList As D ON C.ProductCategoryNo=D.CategoryNo
|
|
|
|
|
+ GROUP BY D.FirstCategoryNo, D.FirstCategoryName , C.DistributionCd
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ INSERT INTO @CancelAmoutList
|
|
|
|
|
+ SELECT D.FirstCategoryNo, D.FirstCategoryName,C.DistributionCd , SUM((IsNull(A.UnitPrice,0)+IsNull(A.CouponPrice,0))*A.Qty)*-1
|
|
|
|
|
+ FROM dbo.TB_ORD_OrderSlipItem As A WITH (NOLOCK)
|
|
|
|
|
+ INNER JOIN @CancelResult As B ON A.OrderSlipNo=B.OrderSlipNo
|
|
|
|
|
+ INNER JOIN dbo.TB_ORD_OrderItem As C WITH (NOLOCK) ON A.OrderItemNo=C.OrderItemNo
|
|
|
|
|
+ INNER JOIN @ProductCategoryList As D ON C.ProductCategoryNo=D.CategoryNo
|
|
|
|
|
+ GROUP BY D.FirstCategoryNo, D.FirstCategoryName , C.DistributionCd
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ DECLARE @Amount_By_Distribute Table (
|
|
|
|
|
+ FirstCategoryNo Int, FirstCategoryName Nvarchar(50),DistributionCd Nvarchar(10), OrderAmount Money, CancelAmount Money, TotalAmount Money
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ insert into @Amount_By_Distribute
|
|
|
|
|
+ SELECT A.FirstCategoryNo As CategoryNo, A.FirstCategoryName As CategoryName , A.DistributionCd
|
|
|
|
|
+ , A.OrderAmount As OrderAmount, IsNull(B.CancelAmount,0) As CancelAmount
|
|
|
|
|
+ , A.OrderAmount+IsNull(B.CancelAmount,0) As OrderTotal
|
|
|
|
|
+ FROM @OrderAmoutList As A LEFT OUTER JOIN @CancelAmoutList As B ON A.FirstCategoryNo=B.FirstCategoryNo and A.DistributionCd = B.DistributionCd
|
|
|
|
|
+ ORDER BY A.FirstCategoryNo,A.DistributionCd
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ select
|
|
|
|
|
+ FirstCategoryNo As CategoryNo,
|
|
|
|
|
+ FirstCategoryName As CategoryName ,
|
|
|
|
|
+ DistributionCd As DistributionCd,
|
|
|
|
|
+ sum(OrderAmount) as orderAmount,
|
|
|
|
|
+ sum(IsNull(CancelAmount,0)) As CancelAmount,
|
|
|
|
|
+ sum(TotalAmount) as OrderTotal
|
|
|
|
|
+ from @Amount_By_Distribute
|
|
|
|
|
+ group by FirstCategoryNo,FirstCategoryName, DistributionCd
|
|
|
|
|
+
|
|
|
|
|
+ SET NOCOUNT OFF;
|
|
|
|
|
+END
|