Groter en kleiner dan in Base queries

Bespreek het databaseprogramma
Arnold
Berichten: 7
Lid geworden op: za nov 30, 2013 11:48 pm

Groter en kleiner dan in Base queries

Bericht door Arnold »

Hoe formuleer ik in Openoffice Base een correcte, werkende query voor alle records uit een tabel VANAF een bepaalde datum?
Zodra ik kies voor 'is gelijk aan een bepaalde datum', komt er een correct resultaat. Als ik daarop voortbordurend een query maak voor groter of kleiner dan een bepaalde datum, dan is het resultaat tot nu toe totaal onvoorspelbaar.
Ik heb me suf gezocht naar verklaringen en voorbeelden, maar nog geen bruikbare gevonden. Wie weet raad?
Apache OpenOffice 4.0.1 met Windows 8.1 op laptop en op desktop Windows 7
Gebruikersavatar
floris v
Berichten: 2108
Lid geworden op: za apr 11, 2009 3:30 pm
Locatie: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Bericht door floris v »

Groter dan of kleiner dan is (als ik het goed heb) hetzelfde als: is ongelijk aan. Maar ergens denk ik dat je iets totaal anders wilt.
* AOO 4.1.11 en LibreOffice 7.6.1.2 op Ubuntu 20.x
* Heb je de survival guide voor het forum al gelezen?
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Bericht door RPG »

Hallo

Ik denk dat het voor de meeste database engine zo werkt zo als in de help file beschreven staat.
Voorbeeld voor een database gebaseerd op dbf tabellen

Code: Selecteer alles

SELECT "Geleverd"."Datum", "Geleverd".* FROM "Geleverd" WHERE "Datum" >= {d '2003-03-12' }
SELECT "Geleverd"."Datum", "Geleverd".* FROM "Geleverd" WHERE "Datum" = {d '2003-03-12' }
SELECT "Geleverd"."Datum", "Geleverd".* FROM "Geleverd" WHERE "Datum" <= {d '2003-03-12' }
Maak eerst duidelijk welke database engine je gebruikt. Zie links onder het openings scherm van je database databasedocument.

Uit nog iets testen blijkt dit ook een mogelijkheid in de GUI voor de query designer. Let wel dat zal wel afhankelijk zijn van welke taal staat in gesteld.

Code: Selecteer alles

<= #12-03-2003#
Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Arnold
Berichten: 7
Lid geworden op: za nov 30, 2013 11:48 pm

Re: Groter en kleiner dan in Base queries

Bericht door Arnold »

Dank voor de supersnelle reactie! Ik heb je suggesties getest als volgt, op een OpenOffice CALC werkblad:

Ik had aanvankelijk:
SELECT "CLIENTID" AS "CLIENTID", "DATUM" AS "DATUM", "Notities" AS "Notities" FROM "ContactDetails" WHERE "CLIENTID" = 'R1110' AND "DATUM" > '01-01-2000'

Op basis van jouw suggestie geprobeerd:
SELECT "ContactDetails"."CLIENTID" AS "CLIENTID", "ContactDetails"."DATUM" AS "DATUM", "ContactDetails"."Notities" AS "Notities" FROM "ContactDetails" "ContactDetails" WHERE ( "CLIENTID" = 'R1110' AND "DATUM" >= {d '01-01-2000' })

Dit gaf weer een verward resultaat. Vervolgens, met weglating van de dubbele vermelding van "ContactDetails" halverwege de SQL statement:
SELECT "ContactDetails"."CLIENTID" AS "CLIENTID", "ContactDetails"."DATUM" AS "DATUM", "ContactDetails"."Notities" AS "Notities" FROM "ContactDetails" WHERE ( "CLIENTID" = 'R1110' AND "DATUM" >= {d '01-01-2000' })
Ook hier een verward resultaat. Dat bleef zo, toen ik slechts één in plaats van twee criteria opgaf. Het verwijderen van de haken rond de combi van criteria veranderde niets zichtbaars aan het probleem.

Het gebruik van # in plaats van enkele aanhalingstekens levert een syntax foutmelding op.

Ik gebruik Apache OpenOffice Build 9783, met Nederlandstalige GUI. Geeft dit antwoord op je vraag naar de door mij gebruikte database engine?
Links onderin het openingsscherm verschijnt bij mij alleen de melding dat ik een werkblad gebruik. Ik zie geen link voor het ophalen van de engine-naam.

Bij voorbaat dank voor je aandacht en hopelijk nieuwe suggesties. Het heeft geen enorme haast, wat mij betreft. Het zou me wel zeer helpen.
Apache OpenOffice 4.0.1 met Windows 8.1 op laptop en op desktop Windows 7
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Bericht door RPG »

Hallo
Arnold schreef:Links onderin het openingsscherm verschijnt bij mij alleen de melding dat ik een werkblad gebruik. Ik zie geen link voor het ophalen van de engine-naam.
Als ik dit goed begrijp dan gebruik je een database gebaseerd op een werkblad. In principe moet dat goed kunnen werken. Ik heb voor de voorbeelden ook een database gebaseerd op een werkblad gebruikt. Het is best mogelijk dat de fout al in je werkblad zit. Je gegevens zijn mogelijk geen datums zoals OOo het kan begrijpen. Het is waarschijnlijk tekst die op een datum lijkt voor ons mensen.

Het veranderen van de vormgeving is vaak een goede test. Je kunt het ook zien als je een hoge komma er voor ziet staan. De verandering moet een duidelijk verandering zijn. Zoiets van "1-12-2017" naar "2017 december 1"
Indien de gegevens naar tekst geconverteerd moeten worden: Selecteer de gegevens en dan:
menu --> Gegevens --> Tekst naar kolommen.

Let ook op de volgorde van de datum volgorde. Soms is het dag-maand-jaar en soms is het jaar-maand-dag. Dat is niet willekeurig. Het is voorgeschreven.

Zorg voor een kopie van je spreadsheet als ook het databasedocument.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Arnold
Berichten: 7
Lid geworden op: za nov 30, 2013 11:48 pm

Re: Groter en kleiner dan in Base queries

Bericht door Arnold »

Dank, RPG! Je hebt me op het goede spoor gezet.

Ik heb een klein, nieuw werkblad aangemaakt om daarop het in essentie zelfde type query aan te maken, namelijk: geef me alle records van een bepaalde contactpersoon vanaf een bepaalde datum. Dat is dus een wezenlijk andere vraag dan waar Floris v in zijn reactie van uit ging.

Een query met mijn oorspronkelijke vraag op het nieuwe, testwerkblad was verbazend snel en succesvol gemaakt. De syntax voor het criterium werd namelijk quasi automatisch door AOO Base gemaakt: "> #01-01-2000#" (daar zonder de aanhalingstekens).

In het problematische werkblad was de opmaak van de datumvelden overigens wel in orde.

De oorzaak van de problemen zoek ik nu in 'dingetjes' die waarschijnlijk in de file header van het werkblad zitten. Het bestand had ik al vanaf begin jaren '90 in gebruik, onder Dbase 3, Alpha4, StarOffice en uiteindelijk OpenOffice. Het bestand bevat vele honderden records over diverse typen contacten met tal van personen en organisaties. Het is dus heel belangrijk voor mij.

De uitdaging is nu dus om in principe de overhead uit te schakelen. Ik denk daarom aan een export naar Excel-, csv- of ander formaat om dan te testen welke conversie na een retourtje met de minste problemen goede queries in OpenOffice Base mogelijk maakt.

Hartelijk dank voor je aandacht en suggesties!
Arnold
Apache OpenOffice 4.0.1 met Windows 8.1 op laptop en op desktop Windows 7
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Bericht door RPG »

Hallo

OOo waarschijnlijk alle dbf files lezen.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Bericht door RPG »

Hallo

OpenOffice kan platte tabellen redelijk goed inlezen. Wil je echt wat doen gaan doen met tabellen dan moet je een misschien overstappen naar het gebruik van HSQLDB.

Zolang je nog platte tabellen in werkbladen gebruikt is het belangrijk dat de gegevens in de goede vorm staan. Daarnaast moet de eerste regel ook opgemaakt worden zoals het bedoeld is voor de gehele kolom. OpenOffice haalt informatie voor de tabel uit die eerste regel. Wanneer dit belangrijk is weet ik niet precies maar het kan wel helpen in de verdere ontwikkeling. Wanneer je een kolom opmaakt als valuta dan wordt het later ook als valuta gezien. Het zal niet altijd goed gaan.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Plaats reactie