ok ik heb al eerder een topic geopend met een soortgelijke vraag
maar nu gaat deze vraag verder op het antwoord van toen
heb hier 2 vragen gesteld :):
VRAAG 1:
toen had ik dit verhaal (of kijk hier: \[PHP/SQL] WHERE NOT EXISTS instructie)
nu is het de bedoeling dat ik een overzichtje maak van uitkeringen
deze uitkeringen hebben een gsm nummer.
daarnaast betstaat er een tabel met abonnementen en deze abonnementen hebben ook een gsm nummer
nu is het de bedoeling dat uitkeringen gekoppeld wordt dmv het abonnement id in de tabel uitkering
dit werkt goed maar nu kan het wel eens voorkomen dat een uitkering een foutief gsm nummer bevat
dit mag natuurlijk niet voorkomen en moet dus gecorrigeerd kunnen worden
vandaar dat er dus een overzicht moet komen van uitkeringen met de gsm-nummers EN dit nummer komt NIET voor in de tabel abonnement
de juiste querie hiervoor is (zonder subqueries want dat werkt bij mij niet vanwege de versie)
nu is alleen het volgende van toepassing:
naast dat de GSM-nummer van de uitkering wordt vergeleken met het GSM-nummer van het abonnement
moet het ook worden vergeleken als het niet voorkomt met het Tijdelijk-nummer van het abonnement
ik heb nu deze query gemaakt met behulp van dit topic:
[SQL] Meedere LEFT JOINS
ik heb nu als test data een NIET voorkomende uitkering aangemaakt en hoop dus deze in mijn overzicht terug te kunnen vinden
maar helaas zonder resultaat tot dusver..
VRAAG 2:
het kan zijn dat een gsm-nummer van een abonnement 2 x voorkomt. dit is dan meestal het geval als er 1 abonnement een "Voice" betreft en de andere een "Data".
en het kan dus dan ook zo voorkomen dat er dus dan 2 x een uitkering komt met beide eenzelfde gsm-nummer maar een andere uitkering en abonnementsvorm.
in dit geval heb ik deze query:
als duidelijkheid probeer ik ff de testgegevens uit te leggen:
dit is het resultaat:

wat je dus nu ziet is dat hij voor elke uitkering_gsm_nr gaat zoeken in de tabel abonnementen
hij vind voor het eerste uitkering dus 2 abonnementen
dan bij de 2de uitkering vind hij vervolgens weer 2 abonnementen
NADEEL:
ik kan geen koppeling leggen met de abonnementsvormen omtrend de "voice" of "data" wat dus een nadeel is..
met de knop achter de result is een link naar een volgende pagina waar de uitkering vervolgens gekoppeld kan worden aan het abonnement
in deze link zit dus ook het abonnement_id aan vast
de bovenste 2 zijn voor abonnement_id = 1 en de 2 eronder voor abonnement_id = 4
vraag is kan dit anders of niet?
maar nu gaat deze vraag verder op het antwoord van toen
heb hier 2 vragen gesteld :):
VRAAG 1:
toen had ik dit verhaal (of kijk hier: \[PHP/SQL] WHERE NOT EXISTS instructie)
nu is het de bedoeling dat ik een overzichtje maak van uitkeringen
deze uitkeringen hebben een gsm nummer.
daarnaast betstaat er een tabel met abonnementen en deze abonnementen hebben ook een gsm nummer
nu is het de bedoeling dat uitkeringen gekoppeld wordt dmv het abonnement id in de tabel uitkering
dit werkt goed maar nu kan het wel eens voorkomen dat een uitkering een foutief gsm nummer bevat
dit mag natuurlijk niet voorkomen en moet dus gecorrigeerd kunnen worden
vandaar dat er dus een overzicht moet komen van uitkeringen met de gsm-nummers EN dit nummer komt NIET voor in de tabel abonnement
de juiste querie hiervoor is (zonder subqueries want dat werkt bij mij niet vanwege de versie)
SQL:
1
2
3
| SELECT * FROM uitkereing U LEFT OUTER JOIN Abonnement A ON U.gms = A.gsm WHERE A,gsm IS NULL |
nu is alleen het volgende van toepassing:
naast dat de GSM-nummer van de uitkering wordt vergeleken met het GSM-nummer van het abonnement
moet het ook worden vergeleken als het niet voorkomt met het Tijdelijk-nummer van het abonnement
ik heb nu deze query gemaakt met behulp van dit topic:
[SQL] Meedere LEFT JOINS
SQL:
1
2
3
4
5
6
7
| SELECT u.uitkering_gsm_nr, u.uitkering_abonnement_vorm, u.uitkering_debiteur_naam, u.uitkering_uitgekeerde_bonus FROM ((uitkering u LEFT OUTER JOIN abonnement a ON u.uitkering_gsm_nr = a.abonnement_gsm_nr WHERE a.abonnement_gsm_nr IS NULL) LEFT OUTER JOIN abonnement a ON u.uitkering_gsm_nr = a.abonnement_tijdelijk_nr WHERE a.abonnement_tijdelijk_nr IS NULL) |
ik heb nu als test data een NIET voorkomende uitkering aangemaakt en hoop dus deze in mijn overzicht terug te kunnen vinden
maar helaas zonder resultaat tot dusver..
VRAAG 2:
het kan zijn dat een gsm-nummer van een abonnement 2 x voorkomt. dit is dan meestal het geval als er 1 abonnement een "Voice" betreft en de andere een "Data".
en het kan dus dan ook zo voorkomen dat er dus dan 2 x een uitkering komt met beide eenzelfde gsm-nummer maar een andere uitkering en abonnementsvorm.
in dit geval heb ik deze query:
SQL:
1
2
3
4
5
| SELECT a.abonnement_id, u.uitkering_gsm_nr, u.uitkering_abonnement_vorm, u.uitkering_debiteur_naam, u.uitkering_uitgekeerde_bonus FROM uitkering u, abonnement a WHERE u.uitkering_abonnement_id = 0 AND u.uitkering_gsm_nr = a.abonnement_gsm_nr |
als duidelijkheid probeer ik ff de testgegevens uit te leggen:
| Abonnement 1 | Abonnement 2 |
| gsm 0612-345672 | gsm 0612-345672 |
| type abonnement voice | type abonnement data |
| Uitkering 1 | Uitkering 2 |
| gsm 0612-345672 | gsm 0612-345672 |
| type abonnement voice | type abonnement data |
dit is het resultaat:
wat je dus nu ziet is dat hij voor elke uitkering_gsm_nr gaat zoeken in de tabel abonnementen
hij vind voor het eerste uitkering dus 2 abonnementen
dan bij de 2de uitkering vind hij vervolgens weer 2 abonnementen
NADEEL:
ik kan geen koppeling leggen met de abonnementsvormen omtrend de "voice" of "data" wat dus een nadeel is..
met de knop achter de result is een link naar een volgende pagina waar de uitkering vervolgens gekoppeld kan worden aan het abonnement
in deze link zit dus ook het abonnement_id aan vast
de bovenste 2 zijn voor abonnement_id = 1 en de 2 eronder voor abonnement_id = 4
vraag is kan dit anders of niet?
Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H