-
18-08-2011, 16:49 #1Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
SQL Laatste gegeven van meerdere rijen
Sorry voor de onduidelijke titel (ik weet echt niet hoe ik dit probleem moet noemen
)
Ze hebben mij gevraagd om een paar views te schrijven voor Report Builder, nu zit ik met een probleem. Ik moet voor een bepaalde view gegevens hebben waar ik maar niet uit kom hoe ik er aan moet komen..
Het zit namelijk zo, stel je hebt volgende tabel:
Ik moet dus van zoiets al bovenstaande tabel het bedrag hebben met de datum dichtst bij nu. Dus in dit geval zou ik volgende gegevens moeten hebben:Code:---------------|------------------|----------------- id datum bedrag ---------------|------------------|----------------- 1 10/08/2011 600 1 12/08/2011 500 1 14/08/2011 1000 2 12/08/2011 500 2 14/08/2011 750 2 15/08/2011 500 3 12/08/2011 800 3 13/08/2011 500 ---------------|-------------------|----------------
1 | 14/08/2011 | 1000
2 | 14/08/2011 | 750
3 | 13/08/2011 | 500
Nu heb ik al wat zitten kloten met subquery's en self joins... Ik kom er gewoon niet uit, kan iemand mij hierbij helpen? Ik hoop dat ik duidelijk genoeg ben!
Gr Mam-no votes
-
-
18-08-2011, 17:34 #2Banned
- Registered
- 11/08/10
- Location
- Gemeente
- Posts
- 562
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
Ik dacht da elke rij in een tabel een unieke primary key had?
no votes
-
18-08-2011, 17:37 #3
Kan je hier niet gewoon order by date desc, bedrag desc doen? Zo los ik meestal die dingen op :P
no votes
-
18-08-2011, 18:21 #4Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
is ook zo ;-).. die tabel dat je daar ziet is niet de echte tabel..
@whodares ne want ik moet de ID ook hebben ik moet dus eigelijk echt de resultaten hebben die ik daar gepost heb. Die kan ik toch niet verkrijgen door desc te doen op datum en bedrag?
Ik zou order by id, datum desc kunnen doen. Maar hoe selecteer ik dan telkens die eerste rij van de id's? Dat is het probleem eigenlijk..
@attx: bedankt zoiets had ik ook ongeveer! Ik ga het eens proberen!-no votes
-
18-08-2011, 18:23 #5Member
- Registered
- 04/02/10
- Location
- Durrr
- Posts
- 1,247
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/53
Woops, foutje, post is weg :').
Code:SELECT id, MAX(datum),(SELECT bedrag from tabel where datum = MAX(o.datum) and id = o.id) FROM tabel as o GROUP BY id
no votes
-
18-08-2011, 18:59 #6
Bedoel je dan de rij Id die je nog moet hebben? Heb enkele queries hier bij mij gedaan en daar kreeg ik die wel hoor. Je selecteert die namelijk in je select. De order by verandert je select niet.
Anders kan ik niet meer volgen met wat je juist bedoelt.no votes
-
18-08-2011, 19:08 #7Member
- Registered
- 04/02/10
- Location
- Durrr
- Posts
- 1,247
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/53
Per 'id' wil hij de meest recente resultaten. Met enkel order by kan je meerdere keren hetzelfde id krijgen. Het probleem was het bijbehorende bedrag te selecteren in een subquery, want door die GROUP BY id kan je niet zomaar 'bedrag' selecteren.
no votes
-
19-08-2011, 17:59 #8Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Sorry voor de late reactie: lang geen internet gehad door onweer..
Uitendelijk heb ik het opgelost gekregen met een paar aanpassingen van Mattx zen oplossing! Bedankt hiervoor!-no votes
-
20-08-2011, 00:15 #9Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
Euh, neen, volgens je definitie moet je met je voorbeeld dataset het volgende resultaat krijgen :
Want 15 ligt nog steeds dichter bij 18 dan 14 hé...1 | 14/08/2011 | 1000
2 | 15/08/2011 | 500
3 | 13/08/2011 | 500PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
22-08-2011, 09:27 #10Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
no votes

je hebt gelijk! Sorry, ik had toen nog maar even internet.. Het moest allemaal snel gaan! Het belangrijkste is dat het is opgelost. Bij deze mag deze thread toe!
