ioProgrammo Community

Server Side => mySQL => Discussione aperta da: tomtom97 - Novembre 22, 2017, 10:53:46



Titolo: [RISOLTO] Aiuto per una query
Inserito da: tomtom97 - 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(8) 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(8) 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(8) 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!


Titolo: Re: Aiuto per una query
Inserito da: michele.p - Novembre 23, 2017, 02:03:28
Problema universitario?  ;D

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".  ;D

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

https://bitnami.com/stack/mysql


Titolo: Re: Aiuto per una query
Inserito da: tomtom97 - Novembre 23, 2017, 05:13:57
Problema universitario?  ;D

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".  ;D

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


Titolo: Re: Aiuto per una query
Inserito da: ditch - 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")


Titolo: Re: Aiuto per una query
Inserito da: tomtom97 - 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..


Titolo: Re: Aiuto per una query
Inserito da: ditch - 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.


Titolo: Re: Aiuto per una query
Inserito da: tomtom97 - 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!


Titolo: [RISOLTO] Re: Aiuto per una query
Inserito da: michele.p - 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.


Titolo: Re: [RISOLTO] Re: Aiuto per una query
Inserito da: tomtom97 - 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!


powered by Simple Machines 1
powered by Simple Machines