Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Pozivanje UDFa u subquery-ju sa parametrom iz osnovnog query-ja

  • 3 odgovora
  • 2.512 pregleda

Najnovija ↓

Pozivanje UDFa u subquery-ju sa parametrom iz osnovnog query-ja 04.06.2008. u 13:12 · pre 224 meseca #1
U subquery-ju ne mogu da kao parametar UDFa koristim vrednost iz osnovnog query-ja.

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)
)

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?
Re: Pozivanje UDFa u subquery-ju sa parametrom iz osnovnog query-ja 04.06.2008. u 14:57 · pre 224 meseca #2
Cini mi se da je ovde problem u nested query-iju jel ne vidi alijas za tabelu Tickets (t)
Probaj ovako :
Code:

SELECT statusID 
         FROM dbo.fnGetClosedStatuses(tTickets.typeID)
Potpis
Viva lollapalooza
Re: Pozivanje UDFa u subquery-ju sa parametrom iz osnovnog query-ja 04.06.2008. u 17:00 · pre 224 meseca #3
Citat:
deerbeer: Cini mi se da je ovde problem u nested query-iju jel ne vidi alijas za tabelu Tickets (t)
Probaj ovako :
Code:

SELECT statusID 
         FROM dbo.fnGetClosedStatuses(tTickets.typeID)

Upiti moraju da budu usaglašeni; UDF treba da se poziva za svaki red iz glavnog upita, tako da mora da se koristi alias.
Ali čak i da nije tako, opet se isto ponaša.

Izgleda da UDF koji vraća tabelu uopšte ne može da primi kao parametar vrednost iz obuhvatajućeg upita. :(
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme