n° 219
Novembre 2017
Dicembre 14, 2017, 12:46:26 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: [RISOLTO] Aiuto per una query  (Letto 953 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
tomtom97
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« inserita:: Novembre 22, 2017, 10:53:46 »

salve ragazzi, un aiutino: potreste gentilmente aiutarmi a formare una query che risolva questa domanda?
Elencare descrizione e numero dell'articolo, nonché numero e data ordine per ogni ordine emesso da Mary Nelson che includa una TavolaPesi.
il database è il seguente:


CREATE TABLE Rappresentanti(
CodRappr CHAR(2) PRIMARY KEY,
Cognome CHAR(10) NOT NULL,
Nome CHAR(Fico NOT NULL,
Via CHAR(15),
Citta CHAR(15),
Provincia CHAR(2),
CAP CHAR(5),
TotProvvigioni DECIMAL(7,2),
PercentProvv DECIMAL(3,2));CREATE TABLE Rappresentanti(
CodRappr CHAR(2) PRIMARY KEY,
Cognome CHAR(10) NOT NULL,
Nome CHAR(Fico NOT NULL,
Via CHAR(15),
Citta CHAR(15),
Provincia CHAR(2),
CAP CHAR(5),
TotProvvigioni DECIMAL(7,2),
PercentProvv DECIMAL(3,2));

CREATE TABLE Clienti(
CodCliente CHAR(3) PRIMARY KEY,
Cognome CHAR(10) NOT NULL,
Nome CHAR(Fico NOT NULL,
Via CHAR(15),
Citta CHAR(15),
Provincia CHAR(2),
CAP CHAR(5),
Saldo DECIMAL(7,2) DEFAULT 0,
Fido DECIMAL(6,2) DEFAULT 0,
CodRappr CHAR(2) REFERENCES Rappresentanti(CodRappr)
);

CREATE TABLE Ordini(
NroOrdine CHAR(5) PRIMARY KEY,
Data DATE,
CodCliente CHAR(3)
REFERENCES Clienti(CodCliente)
);

CREATE TABLE Articoli(
NroArt CHAR(4) PRIMARY KEY,
Descrizione CHAR(20),
Giacenza DECIMAL(4,0),
Categoria CHAR(2),
PrezzoUnitario DECIMAL(6,2)
);

CREATE TABLE DettOrdini(
NroOrdine CHAR(5)
REFERENCES Ordini(NroOrdine),
NroArt CHAR(4)
REFERENCES Articoli(NroArt),
PRIMARY KEY (NroOrdine, NroArt),
QtaOrd DECIMAL(3,0),
PrezzoRichiesto DECIMAL(6,2)
);





vi ringrazio!
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #1 inserita:: Novembre 23, 2017, 02:03:28 »

Problema universitario?  Ghigno

Inizia da solo a estrarre, previa query, dalla tabella Articoli del DB la descrizione il numero dell'articolo..

Fallo in pratica! Popola il database anche con valori "ad minchiam".  Ghigno

Se il DB non è installato installalo, eventualmente, se vuoi risparmiare tempo, utilizzando lo stack Bitnami:

https://bitnami.com/stack/mysql
Registrato
tomtom97
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #2 inserita:: Novembre 23, 2017, 05:13:57 »

Problema universitario?  Ghigno

Inizia da solo a estrarre, previa query, dalla tabella Articoli del DB la descrizione il numero dell'articolo..

Fallo in pratica! Popola il database anche con valori "ad minchiam".  Ghigno

Se il DB non è installato installalo, eventualmente, se vuoi risparmiare tempo, utilizzando lo stack Bitnami:

https://bitnami.com/stack/mysql

sisi è un problema universitario e si il db è popolato e installato..
avevo pensato di risolverlo con delle subquery a cascata..
quindi come prima cosa:
select nroart,descrizione
from articoli
where ...

e poi mi son bloccato, ce ho bisogno di sapere tutti gli ordini di questo cliente e di vedere se, per ogni ordine, è presente la TavolaPesi... se è presente allora devo mostrare descrizione e numero articolo di ogni articolo che compone l'ordine quindi penso di usare EXISTS solo che non so come muovermi
Registrato
ditch
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 3


Mostra profilo WWW
« Risposta #3 inserita:: Novembre 26, 2017, 12:12:03 »

Prova con questa. Non avendo i dati non ho potuto testarla.

select articoli.nroart,descrizione,ordini.nroordine,data from articoli
inner join dettordini on articoli.nroart=dettordini.nroart
inner join ordini on dettordini.nroordine=ordini.nroordine
inner join clienti on ordini.codcliente=clienti.codcliente
where cognome="Nelson" and nome="Mary"
and ordini.nroordine in
(select ordini.nroordine from articoli
inner join dettordini on articoli.nroart=dettordini.nroart
inner join ordini on dettordini.nroordine=ordini.nroordine
where articoli.descrizione ="TavolaPesi")
Registrato

tomtom97
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #4 inserita:: Novembre 26, 2017, 03:07:31 »

Prova con questa. Non avendo i dati non ho potuto testarla.

select articoli.nroart,descrizione,ordini.nroordine,data from articoli
inner join dettordini on articoli.nroart=dettordini.nroart
inner join ordini on dettordini.nroordine=ordini.nroordine
inner join clienti on ordini.codcliente=clienti.codcliente
where cognome="Nelson" and nome="Mary"
and ordini.nroordine in
(select ordini.nroordine from articoli
inner join dettordini on articoli.nroart=dettordini.nroart
inner join ordini on dettordini.nroordine=ordini.nroordine
where articoli.descrizione ="TavolaPesi")
ciao allora ti ringrazio per la risposta, ho provato ma non va cioè mi visualizza solo una n-upla e cioè la descrizione della TavolaPesi..
Registrato
ditch
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 3


Mostra profilo WWW
« Risposta #5 inserita:: Novembre 26, 2017, 04:12:56 »

ciao... allora provo ancora ad esserti di aiuto. Penso di aver trovato il database che stai usando.
Che risultato ti aspetteresti?
Io ho questo
'CZ81', 'TavolaPesi', '12504', '2002-09-05'

Facendo un controllo sui dati l'articolo TavolaPesi ha codice CZ81 e l'unico ordine che lo contiene è il 12504 (che contiene solo quell'articolo e nessun altro). Inoltre, nessun altro ordine contiene CZ81.
L'ordine 12504 è stato fatto dal cliente 522, che è Mary Nelson.
Mary Nelson ha fatto anche un altro ordine, il 12498, che contiene questi due articoli che non sono TavolaPesi.
'12498', 'AZ52', 2, 12.95
'12498', 'BA74', 4, 24.95

Secondo me il risultato è corretto. Se mi sbaglio fammi sapere.
Registrato

tomtom97
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #6 inserita:: Novembre 26, 2017, 04:35:04 »

ciao... allora provo ancora ad esserti di aiuto. Penso di aver trovato il database che stai usando.
Che risultato ti aspetteresti?
Io ho questo
'CZ81', 'TavolaPesi', '12504', '2002-09-05'

Facendo un controllo sui dati l'articolo TavolaPesi ha codice CZ81 e l'unico ordine che lo contiene è il 12504 (che contiene solo quell'articolo e nessun altro). Inoltre, nessun altro ordine contiene CZ81.
L'ordine 12504 è stato fatto dal cliente 522, che è Mary Nelson.
Mary Nelson ha fatto anche un altro ordine, il 12498, che contiene questi due articoli che non sono TavolaPesi.
'12498', 'AZ52', 2, 12.95
'12498', 'BA74', 4, 24.95

Secondo me il risultato è corretto. Se mi sbaglio fammi sapere.

sisi, è questo il risultato. quindi va bene ti ringrazio!
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #7 inserita:: Novembre 27, 2017, 05:59:31 »

Quindi qui avete risolto? Era quello il risultato voluto?
Se si allora metto un [RISOLTO] nel titolo. In caso contrario ditelo così lo rimuovo.
Registrato
tomtom97
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo E-mail
« Risposta #8 inserita:: Novembre 27, 2017, 08:54:15 »

Quindi qui avete risolto? Era quello il risultato voluto?
Se si allora metto un [RISOLTO] nel titolo. In caso contrario ditelo così lo rimuovo.

va benissimo!
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines