在SQL中将DATEADD用于上周的数据

问题描述 投票:0回答:1

上一周选择数据的最佳方法是什么?以下返回错误。

SELECT
COUNT(dbo.Calls.kbpCallID) NoofoutboundCalls
FROM (((dbo.Calls 
LEFT OUTER JOIN dbo.OrganizationContacts ON dbo.Calls.kbpOrganizationID = dbo.OrganizationContacts.cmcOrganizationID and dbo.Calls.KbplocationID = dbo.OrganizationContacts.cmclocationID and dbo.Calls.kbpcontactid = dbo.OrganizationContacts.cmccontactid) 
LEFT OUTER JOIN dbo.OrganizationLocations ON dbo.OrganizationContacts.cmcOrganizationID = dbo.OrganizationLocations.cmlOrganizationID and dbo.OrganizationContacts.cmclocationId = dbo.OrganizationLocations.cmllocationid and dbo.OrganizationContacts.cmccontactid = dbo.organizationlocations.cmlapinvoicecontactid) 
LEFT OUTER JOIN dbo.Organizations ON dbo.Calls.kbpOrganizationID = dbo.Organizations.cmoOrganizationID)    
**WHERE  dbo.Calls.kbpOpenedDate  =  DATEADD(week, -1,)** 
AND (dbo.Organizations.cmoCustomerStatus  =  1 OR dbo.Organizations.cmoCustomerStatus  =  2) 
AND dbo.Calls.kbpCallTypeID  =  'SALOB'
sql sql-server tsql dateadd
1个回答
0
投票

尝试这种方式

DECLARE @startDate DATETIME= DATEADD(DAY, 2 - DATEPART(WEEKDAY, GETDATE()-7), CAST(GETDATE()-7 AS DATE))
    DECLARE @endDate DATETIME= DATEADD(DAY, 8 - DATEPART(WEEKDAY, GETDATE()-7), CAST(GETDATE()-7 AS DATE)) 

        SELECT COUNT(dbo.Calls.kbpCallID) NoofoutboundCalls FROM (((dbo.Calls LEFT OUTER JOIN dbo.OrganizationContacts ON dbo.Calls.kbpOrganizationID = dbo.OrganizationContacts.cmcOrganizationID and dbo.Calls.KbplocationID
= dbo.OrganizationContacts.cmclocationID and dbo.Calls.kbpcontactid = dbo.OrganizationContacts.cmccontactid) LEFT OUTER JOIN dbo.OrganizationLocations ON dbo.OrganizationContacts.cmcOrganizationID = dbo.OrganizationLocations.cmlOrganizationID and dbo.OrganizationContacts.cmclocationId = dbo.OrganizationLocations.cmllocationid and dbo.OrganizationContacts.cmccontactid = dbo.organizationlocations.cmlapinvoicecontactid) LEFT OUTER JOIN dbo.Organizations ON dbo.Calls.kbpOrganizationID = dbo.Organizations.cmoOrganizationID)
        WHERE dbo.Calls.kbpOpenedDate BETWEEN @startDate AND @endDate AND (dbo.Organizations.cmoCustomerStatus = 1 OR dbo.Organizations.cmoCustomerStatus = 2) AND dbo.Calls.kbpCallTypeID = 'SALOB'
© www.soinside.com 2019 - 2024. All rights reserved.