.dsy:it. Pages (11): « 1 2 3 [4] 5 6 7 8 » ... Last »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- [CASTANO] Primo Compitino 05/06 (http://www.dsy.it/forum/showthread.php?threadid=22387)


Posted by de_luna on 09-11-2005 10:49:

DISPOSITIVO-HW(Codice,Marca,Tipo)
MANUTENZIONE(Codice,Data,TipoGuasto,Costo,Addetto)

Si richiede di formulare in SQL quanto segue:
• trovare tutti i dati del dispositivo che ha subito la manutenzione meno costosa.


Posted by Logan12584 on 09-11-2005 10:55:

credo...


select disp.codice,disp.marca,disp.tipo
from man,disp
where disp.codice=man.codice and costo <= all (select costo
from manutenzione)
group by disp.codice,disp.marca,disp.tipo

__________________
Scompaio e di me solo fievoli ricordi affolleranno la mente delle genti conosciute,sarò fantasma e vagherò nelle terre di nessuno, finché l ultimo ricordo morrà insieme con il mio spirito...
Se non si è disposti a rivivere la propria vita, perché darsi la pena di viverla adesso ?
Youtube.it


Posted by Logan12584 on 09-11-2005 11:04:

Che dire...in bocca al lupo...

a todos :D





crepi

__________________
Scompaio e di me solo fievoli ricordi affolleranno la mente delle genti conosciute,sarò fantasma e vagherò nelle terre di nessuno, finché l ultimo ricordo morrà insieme con il mio spirito...
Se non si è disposti a rivivere la propria vita, perché darsi la pena di viverla adesso ?
Youtube.it


Posted by de_luna on 09-11-2005 11:07:

io l'ho fatta così:
SELECT disp.codice, disp.marca, disp.tipo
FROM manutenzione NATURAL JOIN dispositivo hw ON CF
GROUP BY Codice, marca tipo
HAVING COUNT <=ALL SELECT costo
FROM MANUTENZIONE
Praticamente cambia che ho messo having e il join nella from, dici che va bene?


Posted by Bombardini10 on 09-11-2005 11:20:

Talking

ola logan guarda il messaggio privato che ti ho mandato.....


Posted by Logan12584 on 09-11-2005 11:33:

Originally posted by de_luna
io l'ho fatta così:
SELECT disp.codice, disp.marca, disp.tipo
FROM manutenzione NATURAL JOIN dispositivo hw ON CF [forse intendevi codice :D ]
GROUP BY Codice, marca tipo
HAVING COUNT <=ALL SELECT costo
FROM MANUTENZIONE
Praticamente cambia che ho messo having e il join nella from, dici che va bene?


nell'having devi mettere count e che cosa conti quindi (*)

si va bene a parte quelle 2 cosette..ti consiglio di mettere le parentesi così la prof ci capisce di più :D :look:

__________________
Scompaio e di me solo fievoli ricordi affolleranno la mente delle genti conosciute,sarò fantasma e vagherò nelle terre di nessuno, finché l ultimo ricordo morrà insieme con il mio spirito...
Se non si è disposti a rivivere la propria vita, perché darsi la pena di viverla adesso ?
Youtube.it


Posted by de_luna on 09-11-2005 11:54:

si, nella fretta di copiare... comunque grazie mille, speriamo che vada bene!
A dopo


Posted by saradid on 09-11-2005 12:04:

Io l'ho fatta cosi' :

select * from dispositivo_hw where codice in (
select codice from manutenzione where costo in(
select min(costo) from manutenzione))


Posted by puntozip on 09-11-2005 12:15:

Originally posted by de_luna

HAVING COUNT <=ALL SELECT costo
FROM MANUTENZIONE
Praticamente cambia che ho messo having e il join nella from, dici che va bene?


Penso che non vada bene: il count ti conta il numero di record e non ha senso confrontarlo con il costo.

Due domande:
1) perchè usate il group by? Non si può evitare?
2) al posto di <= all avrei potuto usare = e min (costo) nella select interna? (non riesco a capire dove si possono o non possono usare le funzione aggregate...)

A poche ore dal compito ho ancora un sacco di dubbi!
:?

__________________
There are two ways of constructing a software design:
one way is to make it so simple that there are obviously no deficiencies;
the other way is to make it so complicated that there are no obvious deficiencies.
(C.A.R. Hoare)


Posted by de_luna on 09-11-2005 12:26:

SUl count ti do pienamente ragione, si può mettere HAVING costo <=........
???
e tolto il count si può togliere anche group by...
ma così mi sembra troppo facile...
l'usare i MIN e MAX nelle select interne Ferrara ieri ha detto che li sconsiglia, però si potrebbe usare con la select senza fare quella interna..
SELECT codice, marca, tipo, MIN (costo)
FROM Manutenzione NATURAL JOIN dispositivo HW ON codice

Non potrebbe andare?
Non sei l'unico ad avere i dubbi..


Posted by puntozip on 09-11-2005 12:37:

Originally posted by de_luna
SUl count ti do pienamente ragione, si può mettere HAVING costo <=........
???
e tolto il count si può togliere anche group by...
ma così mi sembra troppo facile...
l'usare i MIN e MAX nelle select interne Ferrara ieri ha detto che li sconsiglia, però si potrebbe usare con la select senza fare quella interna..
SELECT codice, marca, tipo, MIN (costo)
FROM Manutenzione NATURAL JOIN dispositivo HW ON codice


Non si possono usare attributi e funzioni aggregate nella clausola select senza group by...

__________________
There are two ways of constructing a software design:
one way is to make it so simple that there are obviously no deficiencies;
the other way is to make it so complicated that there are no obvious deficiencies.
(C.A.R. Hoare)


Posted by de_luna on 09-11-2005 12:41:

Crepiiii
;-)


Posted by saradid on 09-11-2005 12:42:

scrivere cosi'

select * from dispositivo_hw where codice in (
select codice from manutenzione where costo in(
select min(costo) from manutenzione))


equivale a scrivere cosi'...

select disp.codice,disp.marca,disp.tipo
from manutenzione man,dispositivo disp
where disp.codice=man.codice and costo <= all (select costo
from manutenzione)
group by disp.codice,disp.marca,disp.tipo


Posted by de_luna on 09-11-2005 12:42:

Originally posted by puntozip
Non si possono usare attributi e funzioni aggregate nella clausola select senza group by...


ops...
QUindi aggiungiamo group by, ma a questo punto (scusa ma faccio fatica a capirlo) group by Costo
o group by id, nome cognome?


Posted by puntozip on 09-11-2005 13:15:

Io la vedo così:
il group by lo uso solo per eseguire funzioni su "sottoinsiemi" di record, ad esempio se avessi avuto una categoria di dispositivo e mi interessava il costo totale della categoria che fosse il minimo tra tutte le categorie (allora avrei raggruppato per categoria).
Ma nel caso in esame vogliamo considerare tutti i dispositivi che sono singole tuple e hanno un attributo (costo) che posso direttamente confrontare con il minimo (ricavato dalla select interna), infatti il confronto lo faccio nella where e non nell'having (che riguarda i valori dei gruppi).

Spero di non crearti ulteriore confusione (prendi quel che scrivo con beneficio d'inventario...)

__________________
There are two ways of constructing a software design:
one way is to make it so simple that there are obviously no deficiencies;
the other way is to make it so complicated that there are no obvious deficiencies.
(C.A.R. Hoare)


All times are GMT. The time now is 02:52. Pages (11): « 1 2 3 [4] 5 6 7 8 » ... Last »
Show all 151 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.