SQL查询结构 - 变量

时间:2018-05-11 11:05:25

标签: sql sql-server variables ssms

我有一个查询,我想要包含一个新变量。我需要查询来检查此变量是否返回NULL,如果是,则从结果集中排除记录。

我需要合并的变量是@PaymentStatusID_DV,但我不知道将它放在哪里有意义。分配它是:

SELECT @PaymentStatusID_DV = dbo.fnGetSimpleDvByThirdPartyField(c.ClientID,c.CustomerID,l.LeadID,ca.CaseID,m.MatterID,1490,4370) 

那么在哪里可以将其放入此查询中然后检查NULL? (不是空)

DECLARE @SettlementDate DATE, 
        @PaymentStatusID_DV VARCHAR(2000),
        @ClientID = 384

SELECT @SettlementDate=dbo.fnAddWorkingDays ( dbo.fnGetNextWorkingDate (CONVERT(DATE,GETDATE()),0) ,cdv.ValueInt + 1 ) 
FROM ClientDetailValues cdv WITH (NOLOCK) WHERE cdv.DetailFieldID=170226 AND cdv.ClientID=@ClientID

SELECT
c.CustomerID,ca.CaseID,ca.LatestInProcessLeadEventID [LeadEventID],m.MatterID, COUNT(m.MatterID)
FROM Customers c WITH (NOLOCK) 
INNER JOIN Lead l WITH (NOLOCK) ON c.CustomerID=l.CustomerID
INNER JOIN Cases ca WITH (NOLOCK) ON l.LeadID=ca.LeadID
INNER JOIN Matter m WITH (NOLOCK) ON ca.CaseID=m.CaseID
LEFT JOIN MatterDetailValues suspended WITH (NOLOCK) ON m.MatterID=suspended.MatterID AND suspended.DetailFieldID=175275
INNER JOIN LeadTypeRelationship ltr WITH (NOLOCK) ON ltr.ToMatterID=m.MatterID AND ltr.FromLeadTypeID=1492 AND ltr.ToLeadTypeID=1493
INNER JOIN Matter pam WITH (NOLOCK) ON ltr.FromMatterID=pam.MatterID
INNER JOIN CustomerPaymentSchedule cps WITH (NOLOCK) ON cps.CustomerID = c.CustomerID AND cps.WhenCreated > '2017-09-01'
INNER JOIN Account a WITH (NOLOCK) ON a.AccountID = cps.AccountID
WHERE  c.Test=0 AND c.ClientID=@ClientID
AND NOT EXISTS ( SELECT * FROM LeadEvent le WITH (NOLOCK) WHERE le.CaseID=ca.CaseID AND le.EventDeleted=0 AND le.EventTypeID=155198 ) -- and collections are not on hold
AND (suspended.ValueInt <> 5144 OR suspended.ValueInt IS NULL) -- and policy status is live
AND cps.CustomerLedgerID IS NULL -- and payment schedule entry has not already been queued in the GL
AND cps.ActualCollectionDate <= @SettlementDate -- and payment date is before or the same as settlement day
AND cps.PaymentGross < 0 -- exclude zero value payments
AND a.AccountTypeID=1 -- and this is a DD payment
GROUP BY c.CustomerID,ca.CaseID,ca.LatestInProcessLeadEventID,m.MatterID

0 个答案:

没有答案