webForumDet fria alternativet

Avtalsfakturering

1 svar · 397 visningar · startad av Claysson

ClayssonMedlem sedan jan. 200454 inlägg
#1

Jag kör en SELECT sats från "Orders"-tabellen där jag hämtar ut senaste ordern från respektive MemberId. Detta är inga problem.

Därefter vill jag endast lista samtliga ordrar som passerat 3 månader.

SELECT     MemberId, MAX(OrderDate) AS LastOrderDate
FROM         Orders
WHERE     (DATEADD(m, 3, OrderDate) < GETDATE())
GROUP BY MemberId

Problemet är att den hämtar MAX(OrderDate) efter WHERE-villkoret. Jag önskar alltså inte listan med Ordrar som inte gått över 3 månadersintervallet. Hoppas någon kan hjälpa mig på rätt spår.

ClayssonMedlem sedan jan. 200454 inlägg
#2

Löste problemet själv.

SELECT     MemberId, OrderDate
FROM         Orders AS O
WHERE    DATEADD(m, 3, OrderDate) < GETDATE()
AND OrderDate IN
                          (SELECT     MAX(OrderDate)
                            FROM          Orders
                            WHERE      Orders.MemberId = O.MemberId)
134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)