Le tabelle coinvolte sono due
TABLE addebiti
---------------------------------------------
id_addebito
addebito
id_sezione
etichetta
sub_etichetta
fascia_soc
desc_fascia_soc
desc_f_oraria
tipo_addebito
fattore_moltiplicativo
---------------------------------------------
TABLE listini_addebiti
---------------------------------------------
id_listino
id_addebito
fascia_soc
desc_f_oraria
valore
---------------------------------------------
La query che ho scritto è
codice:
SELECT A. * ,
IF (
NOT STRCMP( LA.id_listino, 2 ) , LA.id_listino, NULL
),
IF (
NOT STRCMP( LA.id_listino, 2 ) , LA.valore, NULL
)
FROM addebiti AS A
LEFT JOIN listini_addebiti AS LA
USING ( id_addebito, fascia_soc, desc_f_oraria )
WHERE A.tipo_addebito = 'PL'
GROUP BY id_addebito, fascia_soc, desc_f_oraria
Sono in possesso dell'id del listino (Ex: 2)!
Nella tabella "addebiti" ho tutte le possibili tipologie di addebito. A me servono solo quelle con campo tipo_addebito = 'PL'
La chiave univoca per questa tabella è formata dai tre campi id_addebito, fasica_soc, desc_f_oraria
Nella tabella "listini_addebiti" ho gli addebiti associati al nostro listino con id = 2 e il valore dell'addebito.
Quello che voglio ottenere sono tutti i record degli addebiti di tipo "PL" (nel mio caso sono sei) che abbiano o meno una corrispondenza per quel listino. Quindi, per esempio, devo ottenre sempre e comunque 6 record che hanno un campo valore definito se nella tabella listini_addebiti esiste il record che lo definisce, altrimenti NULL.
Capiste?
Idee?
Soluzioni?
Tric e trac?
Bombe o carrarmati?
Grazie