Kada izvršim
Code:
CREATE FUNCTION dbo.fnGetOpenTicketsByAssignee(@daysFrom int, @daysTo int, @now datetime)
RETURNS TABLE
AS
RETURN (
SELECT
ISNULL(ts.assignedToID, t.assignedtoID) 'assignedtoID',
COUNT(*) 'nTickets'
FROM tTickets t
LEFT JOIN tHELPEU_TicketStatuses ts ON t.ticketID = ts.ticketID
WHERE (t.dateclosed IS NULL
AND (t.currentStatusID IS NULL
OR t.currentStatusID NOT IN (
SELECT statusID
FROM dbo.fnGetClosedStatuses(t.typeID)
))
)
AND (
(DATEDIFF(day, t.dateopened, @now) >= @daysFrom AND @daysTo IS NULL)
OR
(DATEDIFF(day, t.dateopened, @now) BETWEEN @daysFrom AND @daysTo AND @daysTo IS NOT NULL)
)
GROUP BY ISNULL(ts.assignedToID, t.assignedtoID)
)
CREATE FUNCTION dbo.fnGetOpenTicketsByAssignee(@daysFrom int, @daysTo int, @now datetime)
RETURNS TABLE
AS
RETURN (
SELECT
ISNULL(ts.assignedToID, t.assignedtoID) 'assignedtoID',
COUNT(*) 'nTickets'
FROM tTickets t
LEFT JOIN tHELPEU_TicketStatuses ts ON t.ticketID = ts.ticketID
WHERE (t.dateclosed IS NULL
AND (t.currentStatusID IS NULL
OR t.currentStatusID NOT IN (
SELECT statusID
FROM dbo.fnGetClosedStatuses(t.typeID)
))
)
AND (
(DATEDIFF(day, t.dateopened, @now) >= @daysFrom AND @daysTo IS NULL)
OR
(DATEDIFF(day, t.dateopened, @now) BETWEEN @daysFrom AND @daysTo AND @daysTo IS NOT NULL)
)
GROUP BY ISNULL(ts.assignedToID, t.assignedtoID)
)
dobijem Incorrect syntax near '.' za liniju FROM dbo.fnGetClosedStatuses(t.typeID)
Ako, međutim, zamenim parametar UDFa konstantom FROM dbo.fnGetClosedStatuses(2), onda prođe.
U čemu je problem?