Groter en kleiner dan in Base queries

Bespreek het databaseprogramma

Groter en kleiner dan in Base queries

Berichtdoor Arnold » zo jan 15, 2017 12:35 am

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
Arnold
 
Berichten: 7
Geregistreerd: za nov 30, 2013 11:48 pm

Re: Groter en kleiner dan in Base queries

Berichtdoor floris v » zo jan 15, 2017 12:43 am

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.6 op Linux Mint
* Heb je de survival guide voor het forum al gelezen?
Avatar gebruiker
floris v
 
Berichten: 1932
Geregistreerd: za apr 11, 2009 3:30 pm
Woonplaats: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Berichtdoor RPG » zo jan 15, 2017 2:07 am

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   UitklappenInklappen
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   UitklappenInklappen
<= #12-03-2003#


Romke
LibreOffice 6.1.6.3 op openSUSE Leap 15
RPG
 
Berichten: 3936
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Berichtdoor Arnold » zo jan 15, 2017 5:56 pm

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
Arnold
 
Berichten: 7
Geregistreerd: za nov 30, 2013 11:48 pm

Re: Groter en kleiner dan in Base queries

Berichtdoor RPG » zo jan 15, 2017 7:09 pm

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 6.1.6.3 op openSUSE Leap 15
RPG
 
Berichten: 3936
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Berichtdoor Arnold » zo jan 15, 2017 10:31 pm

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
Arnold
 
Berichten: 7
Geregistreerd: za nov 30, 2013 11:48 pm

Re: Groter en kleiner dan in Base queries

Berichtdoor RPG » zo jan 15, 2017 10:45 pm

Hallo

OOo waarschijnlijk alle dbf files lezen.

Romke
LibreOffice 6.1.6.3 op openSUSE Leap 15
RPG
 
Berichten: 3936
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Groter en kleiner dan in Base queries

Berichtdoor RPG » zo jan 15, 2017 11:21 pm

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 6.1.6.3 op openSUSE Leap 15
RPG
 
Berichten: 3936
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland


Keer terug naar Base

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast