Aleen rows tonen van het recentste jaar

Status
Niet open voor verdere reacties.

rambomambo

Gebruiker
Lid geworden
9 dec 2012
Berichten
163
Weet er iemand hoe ik alleen de rows kan zien van het recentste jaar.
Ik heb al alles geprobeert maar het lukt me maar niet

select LastName,FirstName, COUNT(OrderID)& MAX(YEAR(orderdate))
from Employees e,Orders o
where e.EmployeeID = o.EmployeeID
and e.ReportsTo >= 1
group by FirstName,LastName

momenteel heb ik dit maar als ik manueel kijk dan klopt me uitkomst niet.
Het is de database northwind van Microsoft
 
Ik snap niet helemaal wat je met deze query wilt, maar dat ter zijde.
Je kunt met een Having een soort filter toepassen over het resultaat van je query.
Je zou de volgende having kunnen toepassen:

having max(year(orderdate)) = datepart(year, getdate())
 
Ik snap niet helemaal wat je met deze query wilt, maar dat ter zijde.
Je kunt met een Having een soort filter toepassen over het resultaat van je query.
Je zou de volgende having kunnen toepassen:

having max(year(orderdate)) = datepart(year, getdate())

ja ik krijg geen foutmelding maar ik krijg nu 0rows te zien.

Het is dus de bedoeling dat ik alleen de orders zie van het meest recente jaar.
alles wat ouder is wil ik niet zien maar having year(orderdate) = 2013 kan ik niet gebruiken omdat er bij andere klanten met een order het max jaar bv 2010 is en die wil ik dus ook kunnen zien
 
Je wilt dus alle orders per klant zien en dan alleen de orders uit het laatste jaar dat de klant een order heeft geplaatst?
 
Je wilt dus alle orders per klant zien en dan alleen de orders uit het laatste jaar dat de klant een order heeft geplaatst?

ja idd dat zou ik willen hebben het lukt allemaal vanaf dat ik max(year(orderdate)) gebruik loopt het mis
 
Of het de beste oplossing is weet ik niet, maar je zou de volgende query kunnen gebruiken:

select e.LastName, e.FirstName, COUNT(o.OrderID)& MAX(YEAR(o.orderdate))
from Employees e
join Orders o
on o.employeeID = e.employeeid
and datepart(year, o.orderdate) = (select max(datepart(year, t.orderdate)) from orders t where t.employeeid = e.employeeid)
where e.ReportsTo >= 1
group by e.FirstName, e.LastName
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan