显示SQL Server

时间:2016-10-16 19:06:11

标签: sql sql-server-2008

我正在开展多层次营销项目,这是我的表结构

CREATE TABLE [Changu143Aa].[UserSalesVolume]
(
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [UserID] [bigint] NULL,
    [PSV] [decimal](18, 2) NULL DEFAULT ((0)),
    [GSV] [decimal](18, 2) NULL DEFAULT ((0)),
    [DateAdded] [datetime] NULL,
    [Pin] [uniqueidentifier] NULL
)

我需要显示销售量,因为如果当前日期在1-15到16-30 / 31之间,如果日期属于16-30 /,那么这是他从1月15日到达的销量总和31我写了一个查询,但它没有正常工作可以任何身体帮助我

IF OBJECT_ID('tempdb..#TPersonalSalesVol') IS NOT NULL
    DROP TABLE #TPersonalSalesVol

IF OBJECT_ID('tempdb..#MPersonalSalesVol') IS NOT NULL
    DROP TABLE #MPersonalSalesVol

CREATE TABLE #TPersonalSalesVol 
(
     TotalPSV Decimal(18, 2),
     TotalGSV Decimal(18, 2), 
     PSV Decimal(18, 2),
     GSV Decimal(18, 2), 
     MUserID bigint 
)

CREATE TABLE #MPersonalSalesVol 
(
     PSV Decimal(18, 2),
     GSV Decimal(18, 2), 
     MUserID bigINT 
)

INSERT INTO #MPersonalSalesVol (PSV, GSV, MUserID)
    SELECT
        SUM(at.PersonalSalesVolume) as PSV, 
        SUM(at.GroupSalesVolume) as GSV,at.UserID
    FROM 
        UserSalesVolume AS at 
    WHERE
        DATEPART(month,DateAdded) = DATEPART(month,GetDate())
        AND DATEPART(day,DateAdded)/16 = DATEPART(day,GetDate())/16
    GROUP BY 
        at.UserID, CONVERT(DATE, at.DateAdded, 101)

INSERT INTO #TPersonalSalesVol (TotalPSV, TotalGSV, PSV, GSV, MUserID)
    SELECT
        SUM(at.PersonalSalesVolume) as TotalPSV, 
        SUM(at.GroupSalesVolume) as TotalGSV,
        t.PSV, t.GSV, at.UserID 
    FROM
        #MPersonalSalesVol AS t 
    JOIN
        UserSalesVolume AS at ON at.UserID = t.MUserID
    GROUP BY
        at.UserID, t.PSV, t.GSV

SELECT * 
FROM #TPersonalSalesVol

1 个答案:

答案 0 :(得分:1)

DECLARE @CurDate datetime2(7)=' 2016-10-16'
DECLARE @Year int = YEAR(@CurDate)
DECLARE @Month int = MONTH(@CurDate)
- 计算日范围
DECLARE @StartDay int = CASE WHEN DAY(@CurDate)< = 15那么1 ELSE 16 END
DECLARE @EndDay int =当天的情况(@CurDate)< = 15那么15节31结束

SELECT UserID,SUM(PSV),SUM(GSV)

FROM UserSalesVolume

年中(DateAdded)= @年和月(DateAdded)= @Month
    和天(DateAdded)在@StartDay和@EndDay之间加入

GROUP BY UserID