Goedemorgen allen,

Ik maak gebruik van mysql 4.0.18-nt en ik heb 2 tabellen.

[users]
id, naam

[tarieven]
user_id, po_nummer, datum_start, datum_eind, tarief

In de tabel tarieven staan tarieven die gelden voor een user voor een bepaalde periode. Het PO nummer is een code die aan de medewerker/tarief word gehangen.

Normaliter geld er 1 PO nummer voor 1 user. Echter, soms gebeurt het dat er 2 of 3 users aan 1 PO nummer worden gehangen. Nu wil ik het volgende uit de database halen.

* Geef een overzicht van alle users (en PO nummers) waarvan het PO nummer voor meerdere users word gebruikt.

Ik kom er niet uit! Wie kan mij helpen?
Eehrm.. zo uit de losse hand...


SELECT users.user_id, tarieven.po_nummer 
FROM users, tarieven
WHERE (SELECT COUNT(po_nummer) FROM tarieven WHERE users.user_id=tarieven.user_id) > 1


Ik heb geen situatie gemaakt waarin ik dit kan testen... maar het is in ieder geval een aanwijzing hoe je dit moet gaan doen. je moet gebruik gaan maken van een sub query...

SELECT 
    COUNT (a.id), 
    b.user_id
FROM 
    a.users,
    b.tarieven 
WHERE
    a.id = b.user_id    
GROUP BY
    a.id,
    b.user_id 
HAVING
    COUNT (a.id) > 1


De query van Rens is Syntaxtisch??? gezien niet juist imo

edit: JOIN vergeten :(
Is nog steeds niet gelukt :'(

De query van rens zou volgens mij wel moeten werken, maar subqueries lukken bij mij niet.

De query van klaas hierboven is niet goed. Deze controleert of een PO nummer voor 1 persoon meerdere keren voorkomt (is mogelijk!), maar hij moet controleren of er meerdere personen op 1 PO nummer zitten.

Is het misschien mogelijk zonder subqueries? Dus met een phplus ofzo?
Offtopic:
Ik maak gebruik van mysql 4.0.18
Dan wordt het hoogste tijd om eens te gaan updaten! Dit is een oude achterhaalde versie die nauwelijks als database (dbms) kan worden omschreven.

En wanneer dit de versie is die jouw hostingprovider aanbiedt, dan mag je jezelf wel eens afvragen of hij zijn klanten wel serieus neemt.
Frank schreef op 28.12.2006 13:40
Offtopic:
Ik maak gebruik van mysql 4.0.18
Dan wordt het hoogste tijd om eens te gaan updaten! Dit is een oude achterhaalde versie die nauwelijks als database (dbms) kan worden omschreven.

En wanneer dit de versie is die jouw hostingprovider aanbiedt, dan mag je jezelf wel eens afvragen of hij zijn klanten wel serieus neemt.


Mijn pa's hosting heeft gewoon meerdere servers, met alemaal andere versie van PHP, en alllemaal andere versie van MySQL.
Waarom? Stel een klant maakt een website, en dat is dan in bijvoorbeeld PHP 4. Mijn pa gaat gewoon upgraden, en de website werkt niet meer, omdat het PHP 5 is.
Zo kunnen klanten kiezen welke versie ze willen, tot en met 5.nieuwste wordt allemaal ondersteund (zelfde geld voor MySQL).

Het licht allemaal aan de provider, en de klanten!
Een beetje goede provider moet dekn ik niet zo maar gaan updaten, en dan het risico lopen dat de klanten met hun website in de problemen komen.
De Serers met PHP 3 gaan binnenkort upgraden, dat weet ik wel. Want niemand gebruikt ze meer ;-)

Just my 2 cents.
@Niek: Het is maar net waar je je zuurverdiende geld aan uit wilt geven :p
Totaal mee eens dat er een update plaats moet vinden. Ben momenteel bezig om dat binnen de organisatie voor mekaar te krijgen. Echter, er zit heel wat testwerk aan te komen als ik de update door wil voeren!

Maar tot dat de update er is zit ik nog wel met 4.0 dus wil graag de juiste gegevens uit de database halen en dit is mij nog steeds niet gelukt.

Ik heb het al wel voor mekaar dat er een lijst met PO nummers naar voren komt, gesorteert PO en gegroepeerd op user. Hoe kan ik met deze lijst (arary) een nieuwe query maken die het gewenste resultaat oplevert?
ik denk dat je dan [php]foreach[/php] moet gebruiken...

Reageren