SELECT COMPLESSA

Ho provato e riprovato ma proprio non riesco a venirne a capo.

Il problema è il seguente nella select sottoriportata

SELECT tmodelli.id_modello,
       tmodelli.modello,
       tmodelli.idarticolo,
       tarticoli.articolo,
       tarticoli.idcategoria,
       tcategorie.categoria,
       tcategorie.idsettore,
       tsettori.settore,
       tmodelli.idcasa_produttrice,
       tcase_produttrici.casa_produttrice,
       tmodelli.data_acquisizione,
       tmodelli.data_cessazione,
       tmodelli.accessorio,
       tmodelli_in_vetrina.posizione_in_vetrina,
       tvendite_speciali.vendita_speciale,
       tprezzi_vendita_dettaglio.prezzo_dettaglio,
      tprezzi_vendita_ingrosso.prezzo_ingrosso
      
FROM (((((((
     tmodelli
LEFT JOIN
     tarticoli
ON
     tmodelli.idarticolo = tarticoli.id_articolo)
LEFT JOIN
     tcategorie
ON
     tarticoli.idcategoria = tcategorie.id_categoria)
LEFT JOIN
     tsettori
ON
     tcategorie.idsettore = tsettori.id_settore)
LEFT JOIN
     tcase_produttrici
ON
     tmodelli.idcasa_produttrice = tcase_produttrici.id_casa_produttrice)
LEFT JOIN
     tmodelli_in_vetrina
ON
     tmodelli.id_modello = tmodelli_in_vetrina.idmodello)
LEFT JOIN
     tvendite_speciali
ON
     tmodelli_in_vetrina.idvendita_speciale = tvendite_speciali.id_vendita_speciale)
LEFT JOIN
     tprezzi_vendita_dettaglio
ON
     tmodelli.id_modello = tprezzi_vendita_dettaglio.idmodello)
LEFT JOIN
     tprezzi_vendita_ingrosso
ON
     tmodelli.id_modello = tprezzi_vendita_ingrosso.idmodello
WHERE (((
      tmodelli.data_cessazione) Is Null))

       
 

ho bisogno di visualizzare per ogni record (modello) l'ultimo prezzo_ingrosso e l'ultimo prezzo_dettaglio;

che provengono rispettivamente dalle tabelle:

  • CREATE TABLE `tprezzi_vendita_dettaglio` (

      `idmodello` int(11) default NULL,

      `data_variazione` date default NULL,

      `prezzo_dettaglio` float(9,2) default NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

  • CREATE TABLE `tprezzi_vendita_ingrosso` (

      `idmodello` int(11) default NULL,

      `data_variazione` date default NULL,

      `prezzo_ingrosso` float(9,2) default NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

e che prevedono l'aggiornamento dei prezzi di vendita, in modo da tenere uno storico, a mezzo di un nuovo record contenente l'importo e la  data di modifica.

Come devo muovermi????

Grazie giovanni

inviato 10 anni fa
bonann23
X 0 X

non credo si possa fare con una sola query. Perché non separare le tabelle dello storico dei prezzi con quella dei prezzi attualmente a listino?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ci avevo pensato; ma speravo di poter farne a meno

Grazie

Giovanni

risposto 10 anni fa
bonann23
X 0 X

Che ne pensi se nella tabella modelli inserisco i campi prezzo_ingrosso e prezzo_dettaglio contenenti i prezzi di vendita correnti che aggiorno  alla bisogna; aggiornando conseguentemente le tabelle tprezzo_ingrosso e tprezzo_detaglio che così diverrano storiche?

Grazie Giovanni

risposto 10 anni fa
bonann23
X 0 X

penso sia la soluzione migliore.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda