Tabel gekoppeld mis gegevens

Status
Niet open voor verdere reacties.

barendrecht82

Gebruiker
Lid geworden
24 mrt 2013
Berichten
230
Hoi,

Ik heb verschillende tabellen gemaakt Elk tabel is een periode. Daarnaast 1 aparte tabel gemaakt die alleen grootboekrekeningen laat zien. Dus alles.

De andere tabellen zijn GB rekeningen waar saldo op staan. Nu heb ik deze sql gemaakt, maar alle tabellen waar wel saldo op zouden moeten staat worden niet weergeven. Dit komt dus door tabel qry_gb_lijst.

qry_gb_lijst geeft alle rekeningen weer. Ik wil dus ook lege velden zien. momenteel worden regels overgeslagen...


Code:
SELECT qry_gb_lijst.Grootboek, qry_GB_KMF_Jan_2018.Saldo AS Jan, qry_GB_KMF_Feb_2018.Saldo AS Feb, qry_GB_KMF_Mrt_2018.Saldo AS Maart, qry_GB_KMF_april_2018.Saldo AS April, qry_GB_KMF_mei_2018.Saldo AS Mei, qry_GB_KMF_juni_2018.Saldo AS Juni, qry_GB_KMF_juli_2018.Saldo AS Juli, qry_GB_KMF_aug_2018.Saldo AS Aug, qry_GB_KMF_sep_2018.Saldo AS Sep, qry_GB_KMF_okt_2018.Saldo AS Okt, qry_GB_KMF_nov_2018.Saldo AS Nov, qry_GB_KMF_dec_2018.Saldo AS [dec]
FROM qry_gb_lijst LEFT JOIN (((((((((((qry_GB_KMF_Jan_2018 LEFT JOIN qry_GB_KMF_Feb_2018 ON qry_GB_KMF_Jan_2018.Grootboek = qry_GB_KMF_Feb_2018.Grootboek) LEFT JOIN qry_GB_KMF_Mrt_2018 ON qry_GB_KMF_Feb_2018.Grootboek = qry_GB_KMF_Mrt_2018.Grootboek) LEFT JOIN qry_GB_KMF_april_2018 ON qry_GB_KMF_Mrt_2018.Grootboek = qry_GB_KMF_april_2018.Grootboek) LEFT JOIN qry_GB_KMF_mei_2018 ON qry_GB_KMF_april_2018.Grootboek = qry_GB_KMF_mei_2018.Grootboek) LEFT JOIN qry_GB_KMF_juni_2018 ON qry_GB_KMF_mei_2018.Grootboek = qry_GB_KMF_juni_2018.Grootboek) LEFT JOIN qry_GB_KMF_juli_2018 ON qry_GB_KMF_juni_2018.Grootboek = qry_GB_KMF_juli_2018.Grootboek) LEFT JOIN qry_GB_KMF_aug_2018 ON qry_GB_KMF_juli_2018.Grootboek = qry_GB_KMF_aug_2018.Grootboek) LEFT JOIN qry_GB_KMF_sep_2018 ON qry_GB_KMF_aug_2018.Grootboek = qry_GB_KMF_sep_2018.Grootboek) LEFT JOIN qry_GB_KMF_okt_2018 ON qry_GB_KMF_sep_2018.Grootboek = qry_GB_KMF_okt_2018.Grootboek) LEFT JOIN qry_GB_KMF_nov_2018 ON qry_GB_KMF_okt_2018.Grootboek = qry_GB_KMF_nov_2018.Grootboek) LEFT JOIN qry_GB_KMF_dec_2018 ON qry_GB_KMF_nov_2018.Grootboek = qry_GB_KMF_dec_2018.Grootboek) ON qry_gb_lijst.Grootboek = qry_GB_KMF_Jan_2018.Grootboek;
 
Niemand wordt wijs uit zo'n brei spaghetti-querie..
Tijd om dit te ontrafelen:

Code:
SELECT    qry_gb_lijst.grootboek,
          qry_gb_kmf_jan_2018.saldo   AS Jan,
          qry_gb_kmf_feb_2018.saldo   AS Feb,
          qry_gb_kmf_mrt_2018.saldo   AS Maart,
          qry_gb_kmf_april_2018.saldo AS April,
          qry_gb_kmf_mei_2018.saldo   AS Mei,
          qry_gb_kmf_juni_2018.saldo  AS Juni,
          qry_gb_kmf_juli_2018.saldo  AS Juli,
          qry_gb_kmf_aug_2018.saldo   AS Aug,
          qry_gb_kmf_sep_2018.saldo   AS Sep,
          qry_gb_kmf_okt_2018.saldo   AS Okt,
          qry_gb_kmf_nov_2018.saldo   AS Nov,
          qry_gb_kmf_dec_2018.saldo   AS [dec]
FROM      qry_gb_lijst
LEFT JOIN (((((((((((qry_gb_kmf_jan_2018
LEFT JOIN qry_gb_kmf_feb_2018
ON        qry_gb_kmf_jan_2018.grootboek = qry_gb_kmf_feb_2018.grootboek)
LEFT JOIN qry_gb_kmf_mrt_2018
ON        qry_gb_kmf_feb_2018.grootboek = qry_gb_kmf_mrt_2018.grootboek)
LEFT JOIN qry_gb_kmf_april_2018
ON        qry_gb_kmf_mrt_2018.grootboek = qry_gb_kmf_april_2018.grootboek)
LEFT JOIN qry_gb_kmf_mei_2018
ON        qry_gb_kmf_april_2018.grootboek = qry_gb_kmf_mei_2018.grootboek)
LEFT JOIN qry_gb_kmf_juni_2018
ON        qry_gb_kmf_mei_2018.grootboek = qry_gb_kmf_juni_2018.grootboek)
LEFT JOIN qry_gb_kmf_juli_2018
ON        qry_gb_kmf_juni_2018.grootboek = qry_gb_kmf_juli_2018.grootboek)
LEFT JOIN qry_gb_kmf_aug_2018
ON        qry_gb_kmf_juli_2018.grootboek = qry_gb_kmf_aug_2018.grootboek)
LEFT JOIN qry_gb_kmf_sep_2018
ON        qry_gb_kmf_aug_2018.grootboek = qry_gb_kmf_sep_2018.grootboek)
LEFT JOIN qry_gb_kmf_okt_2018
ON        qry_gb_kmf_sep_2018.grootboek = qry_gb_kmf_okt_2018.grootboek)
LEFT JOIN qry_gb_kmf_nov_2018
ON        qry_gb_kmf_okt_2018.grootboek = qry_gb_kmf_nov_2018.grootboek)
LEFT JOIN qry_gb_kmf_dec_2018
ON        qry_gb_kmf_nov_2018.grootboek = qry_gb_kmf_dec_2018.grootboek)
ON        qry_gb_lijst.grootboek = qry_gb_kmf_jan_2018.grootboek;

Met dank aan: http://www.dpriver.com/pp/sqlformat.htm

Wait for it..... Elke tabel is een periode??
Ben je niet ergens de verkeerde weg ingeslagen? Tabellen moet je niet als aantallen gebruiken, maar als entiteit. Ook velden moet je niet als aantallen gebruiken.
Alles op wat op zichzelf staat is een entiteit. Denk aan een gebruiker, een transactie, een betaaleenheid, een bank, een transactiesoort (giraal, contant, geldautomaat).
Je zult op zijn minst moeten normaliseren, als je nog fatsoenlijk met je data wilt gaan werken. Ik zie hier een hele sloot aan joins, die behoorlijk vertragend kunnen werken. Als je de boel goed normaliseert. Dan moet alles meevallen, en zullen je queries ook compacter worden. Ik hoop niet dat je met deze structuur verder gaat, want verder je op deze voet doorgaat, hoe meer je dit om zeep helpt, hoe meer je pijn zal gaan voelen, en hoe dieper je je in je voet schiet. Genoeg gezegdes om dit duidelijk te maken. ;)

Terug naar de tekentafel dus!

Lees anders eens dit door:
https://nl.wikipedia.org/wiki/Databasenormalisatie
 
Laatst bewerkt:
Hoi bedankt voor de snelle reactie.

De gegevens komen uit 1 tabel.

Ik wilde namelijk in 1 query per kolom een periode zien. Vandaar dat ik dus verschillende queries heb gemaakt per periode.

Dus eerste kolom komt de grootboekrekening tweede kolom omschrijving en de volgende kolommen jan, feb maart enz.

Hoe zou ik dit anders moeten oppakken? Ik ben maar een beginner.... :)
 
Het belangrijkste punt is:
Normaliseren, en dus eerst een goede databasestructuur opzetten.
Boeken in de bibliotheek zet je ook altijd netjes bij het juiste genre, op de juiste plek. En dat moet je ook met jouw data doen.

Ik kan wel een hele handleiding hier neerzetten, maar de Wikipedia-link die ik gaf geeft al precies aan wat je moet doen.
Lees het eens door, en probeer dan eens een nieuwe opzet te schrijven voor je database.
Schrijf eerst eens in normale zinnen op wat je wilt opslaan. :)
 
Laatst bewerkt:
Als je gegevens in één tabel staan, kun je met een Group By alles in één query krijgen.
 
Hoi

Ik eindelijk de SQL goed staan conform uitslag.

Alleen hoe kan ik ervoor zorgen dat elk gegeven (bv jan feb enz) het saldo van die maand optelt met het saldo van de vorige maand. Dus ik wil cumulatieve bedragen krijgen.

Welke expresiie moet ik opvoeren?

Code:
SELECT qry_gb_lijst.Grootboek, 
qry_gb_lijst.oms25_0,
qry_GB_KMF_Jan_2018.Saldo AS Jan, 
qry_GB_KMF_Feb_2018.Saldo AS Feb, 
qry_GB_KMF_Mrt_2018.Saldo AS Maart, 
qry_GB_KMF_april_2018.Saldo AS April, 
qry_GB_KMF_mei_2018.Saldo AS Mei, 
qry_GB_KMF_juni_2018.Saldo AS 
Juni, qry_GB_KMF_juli_2018.Saldo AS Juli, 
qry_GB_KMF_aug_2018.Saldo AS Aug, 
qry_GB_KMF_sep_2018.Saldo AS Sep, 
qry_GB_KMF_okt_2018.Saldo AS Okt, 
qry_GB_KMF_nov_2018.Saldo AS Nov, 
qry_GB_KMF_dec_2018.Saldo AS [dec]
FROM (((((((((((qry_gb_lijst LEFT JOIN qry_GB_KMF_Jan_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_Jan_2018.Grootboek) LEFT JOIN qry_GB_KMF_Feb_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_Feb_2018.Grootboek) LEFT JOIN qry_GB_KMF_Mrt_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_Mrt_2018.Grootboek) LEFT JOIN qry_GB_KMF_april_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_april_2018.Grootboek) LEFT JOIN qry_GB_KMF_mei_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_mei_2018.Grootboek) LEFT JOIN qry_GB_KMF_juni_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_juni_2018.Grootboek) LEFT JOIN qry_GB_KMF_juli_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_juli_2018.Grootboek) LEFT JOIN qry_GB_KMF_aug_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_aug_2018.Grootboek) LEFT JOIN qry_GB_KMF_sep_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_sep_2018.Grootboek) LEFT JOIN qry_GB_KMF_okt_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_okt_2018.Grootboek) LEFT JOIN qry_GB_KMF_nov_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_nov_2018.Grootboek) LEFT JOIN qry_GB_KMF_dec_2018 ON qry_gb_lijst.Grootboek = qry_GB_KMF_dec_2018.Grootboek;
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan