Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
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


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
La fucina di stelle Sagittario B2 &egrav...
Un razzo spaziale ULA Atlas V ha portato...
Silent Hill f vi farà scoprire la...
Leapmotor ha prodotto il suo milionesimo...
PlayStation Pulse Elevate: i primi altop...
Nove banche europee sfidano Tether e Cir...
Netflix: addio al piano Base senza pubbl...
Flight Simulator su PlayStation per la p...
Bosch taglierà 13.000 posti di la...
Nothing e CMF si separano: il brand low ...
Logitech MX Master 3S a 69€ su Amazon: i...
Colpo di scena su Windows 10: gli aggior...
HONOR, il futuro è foldable, ma n...
Motorola Solutions al servizio della sic...
Dell Pro Plus Earbuds: IA e controllo da...
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: 22:54.


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