Ciao a tutti sql smanettoni!
Mi rivolgo al forum perchè sono a un punto morto (e quindi disperato) nella realizzazione di una query che produca il risultato per il mio report generale che combini tutte le informazioni di
Lavoro, Luogo e Mansione, mi spiego....
Diciamo che ho 3 tabelle:
LUOGO(IdLuogo, NomeLuogo) e ce ne sono 20 e di tipo "c" sono 5
MANSIONE(IdMansione, Descrizione) e ce ne sono 5
LAVORO(idPersona,idLuogo,idMansione,idIncarico)
La prima query seleziona i record in LAVORO a seconda di un determinato codice finale del luogo, di un tipo di mansione e di un cerco Incarico, conteggia le persone che ci lavorano
query A
SELECT idLuogo AS SEDE, idMansione AS TIPO,Count(idPersona) AS Conteggio
FROM LAVORO
WHERE idLuogo LIKE '%c' AND IdMansione <>"DR" AND (idIncarico ="1" OR idIncarico="2"
GROUP BY idLuogo, idMansione
quindi avrò per esempio
PRc | FAB | 9
LZc | PIC | 2
LZc | RUL | 5
ecc...
Poi mi creo tutte le possibili combinazioni di Luogo e Mansione da combinare con la prima query
query B
SELECT idLuogo AS SEDE, IdMansione AS TIPO, Conteggio = 0 FROM LUOGO, MANSIONE
WHERE idLuogo LIKE '%c' AND idMansione <> "DR"
Come risultato avrò quindi 5x4 (escludo un tipo Mansione) tuple del tipo
PRc | FAB | 0
PRc | PIC | 0
PRc | RUL | 0
LZc | FAB | 0
LZc | PIC | 0
LZc | RUL | 0 ecc....
Ora la mia domanda è: per creare un insieme di tipo SEDE,TIPO,Conteggio che includa tutti gli elementi della query A più quelli della query B dove l'insieme di SEDE,TIPO non ci sia in A
Cioè avere:
PRc | FAB | 9
PRc | PIC | 0
PRc | RUL | 0
LZc | FAB | 0
LZc | PIC | 2
LZc | RUL | 5
Se provo la semplice UNION ho giustamente doppioni di SEDE,TIPO con diverso Conteggio.
Poi ho pensato fare: A UNION (B Left Join A ON A.SEDE =B.SEDE AND A.TIPO = B.TIPO)
ma siccome il JOIN lavoro sulle colonne quello che visualizzo non è il risultato aspettato, se non ricordo ottengo solo di nuovo A.
Cosa mi suggerite?
Mi aiutate con il SQL per ottenere la query finale?
GRAZIEEEEE!