.dsy:it. Pages (2): « 1 [2]
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)
-- [SQL] Help query (http://www.dsy.it/forum/showthread.php?threadid=28938)


Posted by mark on 22-02-2007 14:54:

Approfitto ancora un pò della tua disponibilità.
Ti sembra giusta questa traduzione dello schema relazionale dato per la query in concettuale ?

Grazie

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by zonker on 22-02-2007 15:24:

Direi proprio di sì.


Posted by mostrielo on 23-02-2007 10:50:

-- -- determinare il cf dei macchinisti che percorrono il maggior numero di linee diverse
select mx.cf
from (select num_lin_div.cf, count(*) as linee_div
from (select cf, nome_linea, count(*)
from percorrenza as p1
where exists (select *
from percorrenza as p2
where p1.cf=p2.cf and p1.nome_linea<>p2.nome_linea
)
group by cf, nome_linea
) as num_lin_div
group by num_lin_div.cf
) as mx
where mx.linee_div >= ALL (select max(mx.linee_div)
from (select num_lin_div.cf, count(*) as linee_div
from (select cf, nome_linea, count(*)
from percorrenza as p1
where exists (select *
from percorrenza as p2
where p1.cf=p2.cf and p1.nome_linea<>p2.nome_linea
)
group by cf, nome_linea
) as num_lin_div
group by num_lin_div.cf
) as mx
)
;


Posted by zonker on 23-02-2007 12:25:

Scusa se mi riposto...ma
select a.cf from
(select cf, nome_linea, count(*) as conteggio from percorrenza group by cf, nome_linea) a
where a.conteggio >= all (select count(*) from percorrenza group by cf, nome_linea);
è troppo semplice per piacerti?


Posted by mostrielo on 23-02-2007 13:20:

I macchinisti devono percorrere il maggior numero di linee DIVERSE.


Posted by zonker on 23-02-2007 13:33:

Hai ragione.
Cambio:
select cf from
(
select cf, count(*) as conteggio from
(select distinct cf, nome_linea from percorrenza) a group by cf
) b
where conteggio >= ALL (
select count(*) as conteggio from
(select distinct cf, nome_linea from percorrenza) c group by cf
);
Che te ne pare?


Posted by mostrielo on 23-02-2007 14:06:

Ok, va bene!


Posted by mark on 25-02-2007 10:58:

CLIENTE (Nr.telefono, Nome, Indirizzo)
ORDINE (Nr.telefono, Codice-Pizza, Codice-Operatore, Data, Costo)
PIZZA (Codice-Pizza, Nome, Prezzo)

Si richiede di formulare in SQL quanto segue:
• determinare per ogni operatore e ogni pizza il costo totale degli ordini effettuati;


SELECT codicepizza, sum(costo) FROM ORDINE GROUP BY codicepizza;

e con questa query estraggo il costo totale per ogni tipo di pizza venduta ma, come diamine ci inserisco l'operatore ?
La query è anche sbagliata perchè nella somma non tiene conto di operatori differenti :cry:

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by mostrielo on 26-02-2007 13:16:

può essere cosi?

SELECT codice_operatore, ordine.codice_pizza, sum(costo) as spesa_totale
FROM ordine, pizza
WHERE ordine.codice_pizza=pizza.codice_pizza
group by codice_operatore, ordine.codice_pizza;


Posted by mark on 26-02-2007 16:43:

Originally posted by mostrielo
può essere cosi?

SELECT codice_operatore, ordine.codice_pizza, sum(costo) as spesa_totale
FROM ordine, pizza
WHERE ordine.codice_pizza=pizza.codice_pizza
group by codice_operatore, ordine.codice_pizza;



si, è perfetto grazie

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


All times are GMT. The time now is 10:51. Pages (2): « 1 [2]
Show all 25 posts from this thread on one page

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