我有以下查詢,但它沒有考慮p.created_by [email protected]
where子句中的如何更正它,以便根據@searchBy過濾結果。SQL where子句未得到過濾
ALTER PROC [dbo].[Rptcashcollectionouter] @branchId INT,
@searchBy INT,
@strDate DATETIME=NULL,
@endDate DATETIME=NULL
AS
BEGIN
SELECT DISTINCT p.created_on AS paid_date
FROM reading re
JOIN billing_gen bg ON re.id = bg.reading_id
JOIN customer_registration cr ON bg.account_number = cr.account_number
JOIN payment p ON bg.bill_number = p.bill_number
JOIN customer_category cc ON cr.customer_category_id = cc.id
WHERE p.created_by = @searchBy
AND ((@strDate IS NULL)
OR Cast(Floor(Cast(p.created_on AS FLOAT)) AS DATETIME) >=
Cast(Floor(Cast(@strDate AS FLOAT)) AS DATETIME))
AND ((@endDate IS NULL)
OR Cast(Floor(Cast(p.created_on AS FLOAT)) AS DATETIME) <=
Cast(Floor(Cast(@endDate AS FLOAT)) AS DATETIME))
AND cr.branch_id = @branchId
ORDER BY p.created_on ASC;
END;
樣本數據和預期的結果肯定會幫助 –