Ga naar inhoud

ASP - SQL (Access)-vraag


anoniem

Aanbevolen berichten

Ik heb 2 kolommen uit een database gehaald en die stop ik in een recordset Rs. [code:1:6900157dad]sql = "SELECT * FROM bezoekers ORDER BY Datum, Naam"[/code:1:6900157dad] Nu staat bij sommige records geen datum. Hij plaats nu eerst de records zonder datum (en naam op volgorde), dan met datum op volgorde (en naam op volgorde). Ik zou graag zien dat ie eerst alle records met datum pakt en dan pas de records zonder datum. Hoe doe ik dat?
Link naar reactie
Volgens mij gaat het erom wel oplopend op datum te sorteren, maar dan niet beginnend met de null-datums. Dat zul je dan toch met twee queries/recordsets moeten doen: sql = "SELECT * FROM bezoekers WHERE Not IsNull(Datum) AND Datum <> "" ORDER BY Datum, Naam" en daarna sql = "SELECT * FROM bezoekers WHERE IsNull(Datum) OR Datum = "" ORDER BY Naam"
Link naar reactie
[color=blue:99cc2d8bef]IIf(Datum IS NULL, 1, 0)[/color:99cc2d8bef] >> als Datum de waarde NULL heeft geef dan een 1 terug en anders een 0. [color=blue:99cc2d8bef]ORDER BY 3 ASC[/color:99cc2d8bef] >> sorteer op de 3e kolom uit de resultset (van laag naar hoog). Dus alle "geldige" datums krijgen in de derde kolom een 0 en zullen dus als eerste getoond worden.
Link naar reactie
Je sorteert op de derde kolom met in de ORDER BY clause: 3 ASC. Bij de veldopsomming geef je de derde kolom geen naam mee. Ik heb je methode in Access geprobeerd en dan verzint ie zelf een kolomnaam, Expr1003 in mijn geval (en als ik naar designview switch maakt ie er Expr1 van). En dan sorteert ie dus ook niet op 3 ASC... En waarom expliciet ASC erbij vermeld? Ik ken niet anders dan dat dat default is, maar ik ken dan ook niet alle engines... (en ook niet alle tricks, handig, dat iiffen in een query). Ik zou er dus dit van maken: [code:1:e369eef7ef] SELECT Naam, Datum, IIf(Datum IS NULL, 1, 0) AS sortDatum FROM bezoekers ORDER BY sortDatum, Datum, Naam [/code:1:e369eef7ef]
Link naar reactie
[quote:f131e14c32="Paulus"]Je sorteert op de derde kolom met in de ORDER BY clause: 3 ASC.[/quote:f131e14c32] Klopt [quote:f131e14c32="Paulus"] Bij de veldopsomming geef je de derde kolom geen naam mee. [/quote:f131e14c32] Leek mij ook niet nodig, maar ik ken Access blijkbaar niet goed genoeg ;) [quote:f131e14c32="Paulus"] En waarom expliciet ASC erbij vermeld? Ik ken niet anders dan dat dat default is, maar ik ken dan ook niet alle engines... [/quote:f131e14c32] Klopt, is niet nodig, maar ik zou ze niet de kost willen geven die denken dat bij volgend voorbeeld alle kolommen aflopend gesorteerd worden: [i:f131e14c32]...ORDER BY a, b, c DESC[/i:f131e14c32] Dus voor de duidelijkheid eigenlijk.
Link naar reactie
[quote:761b5469a6="Mvlstar"]Voor zover ik weet doet: ORDER BY 3 ASC het volgende: sorteer op de 3e kolom in het result set. Maar dit weet ik niet zeker.[/quote:761b5469a6] uhh, zei ik niet eerder daar iets over? [quote:761b5469a6="Annie"]ORDER BY 3 ASC >> sorteer op de 3e kolom uit de resultset (van laag naar hoog). [/quote:761b5469a6] Of geloof je me soms niet :cry:
Link naar reactie
Ik gebruik nu de volgende sql: [code:1:f05a72c98e]SELECT * , IIF(Datum IS NULL, 1, 0) as sortDatum FROM bezoekers ORDER BY sortDatum, Datum, Naam[/code:1:f05a72c98e] Maar krijg helaas de volgende foutmelding. Haal ik de sortDatum bij de ORDER BY weg dan geeft ie de oude tabel goed weer. [quote:f05a72c98e]Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. [/quote:f05a72c98e]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...