[SQL / MySQL] Exclude profiel

Pagina: 1
Acties:

  • Dwightjo
  • Registratie: Juni 2003
  • Laatst online: 23-08 13:40
Ik loop vast op een query, en hoop dat iemand me kan helpen want volgens mij zit ik met een gedachte kronkel.

De situatie:

Een bedrijf, meerdere afdelingen, binnen de afdelingen diverse groepen.
Er komen verzoeken binnen van klanten die afhankelijk van het verzoek verdeeld worden over de diverse groepen van een afdeling.

Het opvragen van de verzoeken die bij een afdelingen horen gaat goed.
(deze stop ik in $fetch_gs_ids)

De groepen van een afdeling staan in een aparte tabel, met daarin naam van de groep en een groep ID.
Nu hou ik in weer 2 aparte tabellen bij, tot welke groep een medewerker behoort, het zelfde doe ik voor de klanten.
Zo kan een bepaalde medewerker voor meerdere groepen werkzaamheden verrichten.


[box_details]
- boxid
- box_naam

[boxmatch_medewerkers]
- boxid
- medewerker_id

[boxmatch_klanten]
- boxid
- klant_id


Nu is er voor iedere afdeling altijd minimaal 1 standaard groep.

Nu is er een senior adviseur die alleen verzoeken afhandelt welke zijn doorgespeeld naar zijn groep/groepen, en welke geen standaard verzoeken afhandelt.
Alle verzoeken zitten in 1 tabel ([gs_flow])

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $sql2 = "SELECT
        gs_flow.gs_id, gs_flow.profile_id, profile.name, profile.card
    FROM
        gs_flow
    LEFT OUTER JOIN    profile    ON gs_flow.profile_id = profile.id
    LEFT OUTER JOIN boxmatch_klanten ON profile_id = klant_id
    WHERE
        gs_flow.gs_id
    IN
        (".$fetch_gs_ids.")
    AND
        boxmatch_klanten.boxid IN (SELECT boxid FROM boxmatch_medewerkers WHERE medewerker_id = '".$med_id."' AND boxid <> '".$poolinfo['default_box']."')
    AND
        gs_flow.voltooid = 'n'
    ORDER BY
        gs_flow.tijd";

?>

Hierboven wordt nu dus gekeken of de klant en de adviseur beide voorkomen in één van de boxen/groepen waar de medewerker in voorkomt Uitgesloten de standaard box. Dit heb ik net getest en lijkt goed te werken.

Het probleem speelt zich nu af bij een normale medewerker van de zelfde afdeling. Dit komt omdat iedereen voorkomt in de standaard box/groep.
De query for normale adviseurs is namelijk anders. Het stukje
"AND boxid <> '".$poolinfo['default_box']."'"
ontbreekt namelijk.


Ik heb nu een extra veld aangemaakt in de profile table

[profile]
~enkele klant gegevens~
- exclude

(het exclude veld is enum 'n','y' default 'n')

Nu bij het doorsturen van een verzoek naar een van de senior groepen wordt de waarde van het veld veranderd in 'y'
zodat deze niet meer voor mag komen in het overzicht van de reguliere adviseurs. Ook is het mogelijk om zo bepaalde klanten permanent door te sturen naar senior adviseurs.

Alleen ik loop vast met het maken van deze query.

Volgens mij moet ik een if/else statement gebruiken. Maar zie niet zo 1 2 3 waar.

Illest Alive