Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-01-2009, 14:23   #1
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
[SQL] 2 esercizi!!

Ho il seguente schema:

Codice:
pazienti (pid, nome, cognome, indirizzo)
cartelle (pid, mid, diagnosi, trattamento)
degenze (pid, inizio, fine, reparto)
medici (mid, cognome_medico, qualifica)
1) Devo esprimere la seguente interrogazione:
Quote:
Trovare i reparti per cui il numero dei pazienti con trattamento intensivo ricoverati dal 1° novembre 2008 è maggiore di 10.
Io l'ho fatta così:
Codice:
select distinct reparto
from cartelle c, degenze d
where c.pid = (select d.pid
                     from degenze d
                     where c.trattamento = "intensivo"
                     group by d.pid
                     having count (reparto) > 10
                     and d.inizio = "1° novembre 2008")
è corretta?

2) Facendo riferimento allo schema di sopra, ho la seguente interrogazione:
Codice:
select distinct cognome, nome
from pazienti
where pid in (select pid
                  from cartelle
                  where trattamento = "intensivo")
Devo esprimerla in algebra relazionale e se nn è possibile dire il motivo, io ho fatto così xò nn sono sicuro ke sia giusto:
Codice:
π cognome, nome ((σ trattamento="intensivo" CARTELLE) join PAZIENTI)
mi dite se è corretta, anke se ho forti dubbi ke lo sia!!

Grazie mille
__________________
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
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2009, 14:47   #2
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Sull'algebra relazionale non ti rispondo perchè sinceramente non me la ricordo più e potrei dire stronzate.

Per la prima domanda invece... ma sono io o quello schema non ha nessun senso?? Cioè, che relazione ci sarebbe tra cartelle e degenze? E in generale, che relazioni dovrebbero avere tra loro quelle 4 tabelle mess li cosi?
E i reparti perchè non hanno una tabella tutta loro?
Ma è il prof che ha fatto sta roba?

Tanto più che la query è abbastanza assurda. Fai il prodotto cartesiano di due tabelle e poi tenti di prendere fuori dei valori... a parte l'inefficienza della cosa, mi sembra ci sia un problema a monte.
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2009, 19:13   #3
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Quote:
Originariamente inviato da shinya Guarda i messaggi
Sull'algebra relazionale non ti rispondo perchè sinceramente non me la ricordo più e potrei dire stronzate.

Per la prima domanda invece... ma sono io o quello schema non ha nessun senso?? Cioè, che relazione ci sarebbe tra cartelle e degenze? E in generale, che relazioni dovrebbero avere tra loro quelle 4 tabelle mess li cosi?
E i reparti perchè non hanno una tabella tutta loro?
Ma è il prof che ha fatto sta roba?

Tanto più che la query è abbastanza assurda. Fai il prodotto cartesiano di due tabelle e poi tenti di prendere fuori dei valori... a parte l'inefficienza della cosa, mi sembra ci sia un problema a monte.
Guarda è il testo di un compitino dell'esame di novembre, quindi lo schema l'ha fatto il prof...
__________________
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
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2009, 19:24   #4
CozzaAmara
Senior Member
 
L'Avatar di CozzaAmara
 
Iscritto dal: Nov 2008
Messaggi: 411
Codice:
select distinct reparto
from cartelle c, degenze d
where c.pid = (select d.pid
                     from degenze d
                     where c.trattamento = "intensivo"
                     group by d.pid
                     having count (reparto) > 10
                     and d.inizio = "1° novembre 2008")
Non credo si possa usare una funzione interna come count() dopo la clausola having.
Se non erro devi mettere count(reparto) tra i campi recuperati da SELECT (preferibilmente con un alias) e usare l'alias stesso con having.

Codice:
select distinct reparto
from cartelle c, degenze d
where c.pid = (select d.pid, count (reparto) as tot
                     from degenze d
                     where c.trattamento = "intensivo"
                     group by d.pid
                     having tot > 10
                     and d.inizio = "1° novembre 2008")
__________________
CozzaAmara è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2009, 19:26   #5
CozzaAmara
Senior Member
 
L'Avatar di CozzaAmara
 
Iscritto dal: Nov 2008
Messaggi: 411
Quote:
Originariamente inviato da shinya Guarda i messaggi
Tanto più che la query è abbastanza assurda. Fai il prodotto cartesiano di due tabelle e poi tenti di prendere fuori dei valori... a parte l'inefficienza della cosa, mi sembra ci sia un problema a monte.
In effetti.
__________________
CozzaAmara è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2009, 08:55   #6
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Va beh ho capito ora il senso di quello schema... scusate. "pid" sarebbe "pazienti id" ed è usato come parte della chiave primaria anche in cartelle e degenze.
A parte che avrei qualcosa da dire a chi ha fatto questo schema, e che se un mio collega tenta di chiedere al dba di mettere in produzione una roba fatta cosi lo strozzo, e che cmq non credo sia chiarissima la relazione che ci dovrebbe essere tra cartelle e degenze, io scriverei una roba cosi, che però non so se funzioni... bisognerebbe provare con un pò di dati.

Codice:
select d.reparto, count(*) as pazienti
  from cartelle c join degenze d on c.pid = d.pid
 where d.inizio >= "1 nov 2008"
   and c.diagnosi = "intensivo"
group by d.reparto
having count(*) > 10
Posto che non sono sicuro della correttezza del mio sql, se dovesse essere necessario fare un cross-join per tirare fuori il risultato, sarebbe un buon segno che lo schema fa schifo.
shinya è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Batterie a terra per Varta, bancarotta v...
Elon Musk: l'intelligenza artificiale su...
Ryzen 7 9800HX3D: il miglior processore ...
Google porta Gemini Live sui vecchissimi...
Corsair Platform:4 in offerta: la scriva...
Il creatore di Disagea sull'addio dei gi...
Fastweb + Vodafone entra nello SmartCity...
AI Act europeo: dal 2 agosto partono i n...
Da 1,3 a 10 miliardi in due mesi: chi è ...
Schede video RTX: NVIDIA comunica nuovi ...
GTA 6, i 60 fps stabili potrebbero esser...
Questa Smart TV QLED da 40 pollici con H...
Ring in sconto fino al 57%: videocitofon...
Pubblicità su Windows con i monit...
Azioni sul PC e coding solo chiedendo: O...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v