|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
[SQL] Correttezza su alcune query
Ho le seguenti tabelle:
Codice:
Dati anagrafici (Codice Fiscale, Nome, Cognome, Data di nascita, Tipo Paziente, Classe) Recapiti (Codice fiscale, Indirizzo, Città, Tel fisso, Tel mobile, E-mail) *Codice fiscale si riferisce a Dati anagrafici(Codice Fiscale) Caratteristiche (Codice fiscale, Sesso, Peso, Altezza, Gruppo Sanguigno) *Codice fiscale si riferisce a Dati anagrafici(Codice Fiscale) Medico Curante (Codice fiscale, Nome, Cognome, Telefono) In cura (Paziente ,Medico Curante) *Paziente si riferisce a Dati anagrafici(Codice Fiscale), Medico curante si riferisce a Medico curante(Codice Fiscale) Medico ambulatorio (Codice fiscale, Nome, Cognome, Tel. Fisso, Tel. Mobile) Referto (Codice, Paziente, Medico, Data, Ora, Uscita Anticipata, Pronto Soccorso) *Paziente si riferisce a Dati anagrafici(Codice Fiscale), Medico si riferisce a Medico ambulatorio(Codice Fiscale) Patologia (Codice, Nome, Allergia) Diagnosi (Patologia,Referto) *Patologia si riferisce a Patologia(codice), Referto si riferisce a Referto(codice) Malattia cronica (Paziente, Patologia) *Paziente si riferisce a Dati anagrafici(Codice Fiscale), Patologia si riferisce a Patologia (codice) Sintomo (Codice, Nome) Riscontro (Referto, Sintomo) *Referto si riferisce a Referto(codice), Sintomo si riferisce a Sintomo(codice) Medicinale (Codice, Nome, Casa farmaceutica, Categoria, Costo per campione) Somministrazione (Referto, Medicinale, Dosaggio) *Referto si riferisce a Referto(codice), Medicinale si riferisce a Medicinale(codice) Partita (Medicinale, Scadenza, Data consegna, Quantità ordinata, Quantità disponibile, Costo ordine) * Medicinale si riferisce a Medicinale(codice) Quote:
10) Codice:
SELECT c.codice fiscale, c.sesso, c.peso, c.altezza, c.gruppo sanguigno, p.codice, p.nome, p.allergia, m.patologia, FROM caratteristiche c, dati anagrafici d, patologia p, malattia cronica m WHERE c.codice fiscale = d.codice fiscale and p.codice = m.patologia and m.paziente = d.codice fiscale Codice:
SELECT m.codice fiscale, m.nome, m.cognome, m.telefono FROM medico curante m, dati anagrafici d, in cura i WHERE i.paziente = d.codice fiscale and i.medico curante = m.codice fiscale
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale Ultima modifica di Fabietto206 : 19-03-2009 alle 10:39. |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Nessuno sa dirmi se sono corrette??
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
La 12) e la 16) sono sicuramente corrette ( a parte che forse sarebbe meglio per il not equal "<>" anzichè "!=" ). Se hai dubbi sulla sintassi SQL,
le W3Schools sono praticamente un riferimento, ad esempio qui : http://www.w3schools.com/Sql/sql_where.asp Altra cosa, mettere degli spazi nei nomi di Tabelle, Campi, ecc... ( es.: WHERE quantità ordinata != 0 ) è una pratica che ti sconsiglio caldamente. Le relazioni non sono proprio di facile lettura, facevi prima a postare uno screenshot del diagramma DB... Ultima modifica di MarcoGG : 17-03-2009 alle 13:08. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
L'ultima non mi pare corretta.
Non terrebbe conto del fatto che alcuni medicinali, seppure esauriti, sono gia' stati ordinati, e penso che non li si voglia avere in output. La dicitura corretta della domanda secondo me sarebbe voluta essere: 19) Visualizza medicinali che si vuole ordinare (quindi non gia' ordinati) perché esauriti.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 17-03-2009 alle 13:08. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Non sto a chiedermi quale base dati li possa tollerare o meno, e in quali situazioni. Nomi di tabelle, campi, viste ecc ... Uno spazio causa anzitutto confusione, compromette la leggibilità, e porta spesso a errori e ulteriori difficoltà in debug, quando non è chiaro cosa vada storto interrogando o apportando modifiche da codice ( VB, C#, java ecc... ). |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
Cmq mi sapete dire se sono giuste le query da me scritte sopra?
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:17.




















