Hallöle,
meine Frage von letzter Woche ist schon im Archiv verschwunden, ich komme aber erst heute dazu, es auszuprobieren - und es klappt nicht.
Archiv: http://forum.de.selfhtml.org/archiv/2007/2/t146221/
Aufgabe:
Für eine Messe soll von 9:00-9:45 Uhr für jeden Aussteller versucht werden, einen Termin mit einem Interessenten zu machen.
Schritt 1:
Es sind freie Aussteller (noch ohne Termin) zu finden.
Problem:
Die Aussteller, deren Namen mit A beginnt, haben mehr Chancen als die mit Z, für die bleibt kein Kunde mehr übrig.
Bisherige, ungenügende Lösung:
$q = "
#~~~~~~~~~~~~~~~~~~
FREIE AUSSTELLER
#~~~~~~~~~~~~~~~~~~
SELECT
'".$slot_nr."' slot
,adr2.kurzname aus_firma
,adr2.adr_art adr_art
,adr1.adr_unt adr_unt
,adr2.id aus_chef
,adr1.id aus_id
,anw1.slot_nr anw_slot
,kon1.slot_nr kon_slot
FROM ".$db[0]['personen']." AS adr1
FIRMEN-KURZBEZEICHNUNG UND CHEF-ID
LEFT JOIN ".$db[0]['personen']." AS adr2
ON adr2.owner_id=adr1.owner_id AND adr2.kurzname=adr1.kurzname AND adr2.adr_unt=1
#ANWESENHEIT IM SLOT
LEFT JOIN ".$db[0]['anwesenheit']." AS anw1
ON anw1.owner_id=adr1.owner_id AND anw1.slot_nr=".$slot_nr." AND anw1.adr_id=adr1.id
#TERMIN IM SLOT
LEFT JOIN ".$db[0]['kontakte']." AS kon1
ON kon1.owner_id=adr1.owner_id AND kon1.slot_nr=anw1.slot_nr AND kon1.aussteller2_id=adr1.id
ALLE AUSSTELLER-MITARBEITER
WHERE adr1.owner_id=".$owner_id." AND adr1.adr_kz=1 AND adr1.adr_unt=".$adr_unt." ".$such."
GROUP BY aus_firma, adr_unt, aus_chef, aus_id, anw_slot, kon_slot
HAVING anw_slot IS NOT NULL AND kon_slot IS NULL
Zusätzliche Zeile ergibt SQL- Fehler:
ORDER BY adr_art RAND(aus_firma)
Die Sortierung soll zuerst nach der Adreßart und innerhalb der gleichen Adreßart -zufällig_ nach Firmenname geschehen.
Wie geht das?
Lieben Gruß, Kalle