Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Problemi con semplici esercizi di sql, qualcuno sa risolverli?
martedì 10 marzo 2009 - 12.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
salvo77
Profilo
| Newbie
7
messaggi | Data Invio:
mar 10 mar 2009 - 12:38
Ciao a tutti ho un esercizio di cui non so fare alcune cose e le posto, spero che la vostra esperienza mi possa essere utile. Grazie 100000000.
E' dato il seguente schema relazionale per modellare la struttura di un'azienda :
___________________________________________________________________
impiegato( i_id, nome, cognome, stipendio, data_inizio, data_fine);
sede( s_id, nome, indirizzo)
dipartimento ( d_id, nome, budget)
in dipartimento( i_id, d_id, percento_tempo)
in_sede( i_id, s_id)
manager( i_id, d_id)
___________________________________________________________________
Scrivere le seguenti query in SQL:
1. II nome e il budget dei dipartimenti dove lavorano più di 50 persone
2. II nome del dipartimento e l'indirizzo della sede dove lavora l'impiegato con lo stipendio più alto di tutti
3 II nome del dipartimento con nessun impiegato
4. Nome, cognome e stipendio del manager che gestisce più dipartimenti
__________________________________________________________________
PS Se qualcuno le sa risolvere anche in algebra relazionale, gli sarei ancora più grato. GRAZIE
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mar 10 mar 2009 - 14:23
>Ciao a tutti ho un esercizio di cui non so fare alcune cose e
>le posto, spero che la vostra esperienza mi possa essere utile.
>Grazie 100000000.
>
>E' dato il seguente schema relazionale per modellare la struttura
>di un'azienda :
>___________________________________________________________________
>impiegato( i_id, nome, cognome, stipendio, data_inizio, data_fine);
>sede( s_id, nome, indirizzo)
>dipartimento ( d_id, nome, budget)
>in dipartimento( i_id, d_id, percento_tempo)
>in_sede( i_id, s_id)
>manager( i_id, d_id)
>___________________________________________________________________
>Scrivere le seguenti query in SQL:
>
>1. II nome e il budget dei dipartimenti dove lavorano più di
>50 persone
>2. II nome del dipartimento e l'indirizzo della sede dove lavora
>l'impiegato con lo stipendio più alto di tutti
>3 II nome del dipartimento con nessun impiegato
>4. Nome, cognome e stipendio del manager che gestisce più dipartimenti
>__________________________________________________________________
>PS Se qualcuno le sa risolvere anche in algebra relazionale,
>gli sarei ancora più grato. GRAZIE
>
>
Con questi dati è impossibile, non ci sono elementi sufficiento per gestire la cosa. Non c'è legame tra i dipendenti e le sedi e i dipartimenti. Non si capisce come sono gestiti dipartimenti e sedi, cioè se è una struttura ad albero per cui dalla sede dipendono n dipartimenti oppure se i dipartimenti sono in struttura trasversale e quindi un dipartimento può essere presente in più sedi. La tadella in Dipartimento non si capisce che intento avrebbe, la tabella manager composta da un codice e id cosa dovrebbe significare?
In pratica la prima domanda che poni figurerebbe così: Ti do il nome dei miei amici e l'elenco telefonico, devi sapermi dire dove abitano.
Devi fornire qualche dato in più.
ciao
Furio
http://www.opsi.ws
salvo77
Profilo
| Newbie
7
messaggi | Data Invio:
mar 10 mar 2009 - 18:20
Ciao Stroke, innanzi tutto grazie per avermi risposto.
Lo so il tutto è un po complesso da capire, ma questo è il quesito che mi e stato chiesto.
Quello che è per certo è che gli impiegati possono lavorare in 2 o più dipartimenti per una certa percentuale di tempo, la tabella in_dipartimento contine i codici di riferimento
della tabella impiegato e dipartimento, in_sede contiene i codici di riferimento di impiegato e di sede, manager contiene invece quelli di impiegato e di dipartimento, quindi un manager può essere anche un impiegato che lavora in uno o più dipartimenti.
Lo so sono delle query un po complicatucce, io ci sto sbattendo da due giorni, mi sono fatto un database con mysql e cerco di formulare le interrogazioni che me li risolvono,
ma ancora non ci sono riuscito.
Ciao, spero di averti dato qualche informazione in più.
Salvo
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mar 10 mar 2009 - 23:36
questa potrebbe essere la risposta numero 1 se ho capito bene i joint
SELECT dip.nome, dip.budget
FROM (dipartimento as dip INNER JOIN in_dipartimento ON dip.d_id = in_dipartimento.d_id) INNER JOIN impiegati as imp1 ON in_dipartimento.i_id = imp1.i_id
where
(SELECT Count(impo.i_id) AS ConteggioDii_id
FROM dipartimento as dipo INNER JOIN (impiegati as impo INNER JOIN in_dipartimento ON impo.i_id = in_dipartimento.i_id) ON dipo.d_id = in_dipartimento.d_id
GROUP BY dipo.d_id
HAVING (((Count(impo.i_id))>50) AND ((dipo.d_id)=dip.d_id)))
;
Da testare con un po di dati
ciao
Furio
http://www.opsi.ws
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mer 11 mar 2009 - 09:46
e questa per la seconda query
SELECT dipartimento.nome, dipartimento.budget
FROM (dipartimento INNER JOIN in_dipartimento ON dipartimento.d_id = in_dipartimento.d_id) INNER JOIN impiegati as imp1 ON in_dipartimento.i_id = imp1.i_id
WHERE (((imp1.i_id) =exists
(SELECT top 1 impiegati.nome, impiegati.cognome, Max(impiegati.stipendio) AS MaxDistipendio
FROM impiegati
GROUP BY impiegati.nome, impiegati.cognome
ORDER BY Max(impiegati.stipendio) DESC)
));
Furio
http://www.opsi.ws
salvo77
Profilo
| Newbie
7
messaggi | Data Invio:
ven 13 mar 2009 - 11:39
Ciao Stroke, complimenti , ho perso un po di tempo per aggiungere tutti i possibili campi,e per testarli, ma le tue due query funzionano alla grande!
Per le altre due puoi fare qualcosa?
Un altra domanda: pensi che queste quattro query si possano fare in algebra relazionale? E se si le sai fare?
Un salutone, CIAOOOOOOOOO!!!!!
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
ven 13 mar 2009 - 14:00
>Ciao Stroke, complimenti , ho perso un po di tempo per aggiungere
>tutti i possibili campi,e per testarli, ma le tue due query funzionano
>alla grande!
>Per le altre due puoi fare qualcosa?
>Un altra domanda: pensi che queste quattro query si possano fare
>in algebra relazionale? E se si le sai fare?
>Un salutone, CIAOOOOOOOOO!!!!!
Pensavo che lo schema query e subquery ti fosse suffiecente per comprendere il meccanismo delle altre 2, purtroppo sono un po incasinato e non riesco a farle subito, per cui ti chiederei di provare e caso mai ti correggo se non riesci.
Per l'algebra relazionale è solo un modo sintattico di rappresentare le query, sinceramente non conosco questa sintassi, ma da quel poco che ho visto se hai capito la struttura delle query non mi sembra così difficile.
ciao
Furio
http://www.opsi.ws
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !