1. #1
    Dieterg's Avatar
    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:
    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
    ---------------|-------------------|----------------
    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:
    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  

  2. #2

    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  

  3. #3

    Registered
    07/05/05
    Posts
    345
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1
    Kan je hier niet gewoon order by date desc, bedrag desc doen? Zo los ik meestal die dingen op :P
    no votes  

  4. #4
    Dieterg's Avatar
    Registered
    08/01/05
    Location
    Turnhout
    Posts
    1,182
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    9/9
    Quote Originally Posted by BorisdK View Post
    This quote is hidden because you are ignoring this member. Show
    Ik dacht da elke rij in een tabel een unieke primary key had?
    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  

  5. #5
    Mattx's Avatar
    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  

  6. #6

    Registered
    07/05/05
    Posts
    345
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1
    Quote Originally Posted by Mam View Post
    This quote is hidden because you are ignoring this member. Show
    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!
    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  

  7. #7
    Mattx's Avatar
    Registered
    04/02/10
    Location
    Durrr
    Posts
    1,247
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/53
    Quote Originally Posted by whodares View Post
    This quote is hidden because you are ignoring this member. Show
    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.
    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  

  8. #8
    Dieterg's Avatar
    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  

  9. #9
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Quote Originally Posted by Mam View Post
    This quote is hidden because you are ignoring this member. Show
    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:
    1 | 14/08/2011 | 1000
    2 | 14/08/2011 | 750
    3 | 13/08/2011 | 500
    Euh, neen, volgens je definitie moet je met je voorbeeld dataset het volgende resultaat krijgen :
    1 | 14/08/2011 | 1000
    2 | 15/08/2011 | 500
    3 | 13/08/2011 | 500
    Want 15 ligt nog steeds dichter bij 18 dan 14 hé...
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  10. #10
    Dieterg's Avatar
    Registered
    08/01/05
    Location
    Turnhout
    Posts
    1,182
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    9/9
    Quote Originally Posted by dJeez View Post
    This quote is hidden because you are ignoring this member. Show
    ...

    Want 15 ligt nog steeds dichter bij 18 dan 14 hé...
    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!
    -
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in