COALESCE i stored procedure fungerer ikke
Hej,Jeg har en søgning, hvor det er meningen, jeg vil have flere felter ind, hvor jeg aldrig ved på forhånd, hvilke felter, der er udfyldte.....Jeg har så herinde lært, jeg kan bruge COALESCE....MEN jeg kan bare ikke få den til at fungere....
Min procedure ser ud som følgende:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[GetActivitySearch]
@fOurContactFId AS INT = null,
@fCompanyFId AS INT = null,
@fromDate AS DATETIME = null,
@toDate AS DATETIME = null
AS
BEGIN
SELECT tActivity.fActivityPId, tActivity.fCompanyFId, tActivity.fContactFId, tActivity.fActivityDate, tActivity.fDimDetailCustomFId,
tActivity.fActivityStatus, tActivity.fActivityNote, tActivity.fOurContactFId, tActivity.fOurContactF2Id, tActivity.fActivityTimeStamp,
tCompany.fCompanyName, tDimDetail.fDimDetailText,
tOurContact.fOurContactFirstName + ' ' + tOurContact.fOurContactLastName AS OurContactFullName
FROM tActivity LEFT OUTER JOIN
tOurContact ON tActivity.fOurContactFId = tOurContact.fOurContactPId LEFT OUTER JOIN
tDimDetail ON tActivity.fDimDetailCustomFId = tDimDetail.fDimDetailPId LEFT OUTER JOIN
tCompany ON tActivity.fCompanyFId = tCompany.fCompanyPId
WHERE
(tActivity.fOurContactFId = COALESCE(@fOurContactFId,tActivity.fOurContactFId))
END
Hvis jeg ikke har WHERE delen på - får jeg samtlige 24 rækker, hvis jeg har WHERE delen på og ikke udfylder @fOurContactFId, får jeg kun 18 rækker ud.........De rækker, jeg ikke får ud, er de rækker hvor fOurContactFId = null i tabellen.......
Såvidt jeg har lært, skulle COALESCE jo netop tage alle rækker ud....også selvom de er null?
Jeg håber nogen kan hjælpe mig, jeg er sådan set lidt desperat :-)
mvh
simsen :-)