Buonasera a tutti,
ho la necessità di recuperare dati aggregati partendo dalla selezione di una DataGridView.
Nello specifico la query deve recuperare alcuni dati che possono essere indicati nella tabella come 'default' quando presenti.
Per chiarire meglio pongo un esempio: trattandosi della selezione di un cliente, posso disporre di alcuni controlli di visualizzazione (textbox) dove mostrare la tipologia del contatto (mail, cellulare, fisso, etc.) e il relativo valore (indirizzo, numero); successivamente alla selezione i dati prelevati vanno splittati verso i relativi controlli popolando la scheda cliente.
Se il cliente dispone di un solo contatto questo viene automaticamente impostato come predefinito e mostrato di default.
Se il cliente dispone di più contatti, l'utente ha la possibilità di modificare l'impostazione di visualizzazione selezionandone uno a piacere dalla lista delle disponibilità.
Il problema è che con la query che ho scritto, ovviamente, se non esiste un contatto legato al cliente (o se esiste ma non è stato flaggato come default), anche il resto dei dati non viene prelevato.
La query è la seguente:
select customers.name, surname,
addresses.id, addresses.address, addresses.streetn, addresses.notes,
municipalities.name, municipalities.province, municipalities.zipcode,
contacts.id, contacts.typeid, contacts.description, contacts.notes, contactstypes.description from customers
left join addresses on customers.id = addresses.customerid
left join municipalities on addresses.municipalityid = municipalities.id
left join contacts on customers.id = contacts.customerid
left join contactstypes on contacts.typeid = contactstypes.id
where customers.id = <id_cliente> and addresses.isdefault = 1 and contacts.isdefault = 1;
Chiedo aiuto nel tentativo di far fronte a questa necessità.