Saluti a tutti quanti, espongo il problema:
ho la seguente tabella articoli
e la tabella correlata offertecodice:CREATE TABLE _articoli ( id int(11) NOT NULL auto_increment, titolo varchar(255) default NULL, prezzo decimal(10,2) default NULL, PRIMARY KEY (id) );
vorrei ordinare gli articoli per prezzo ascendente (o descendente....) considerando anche l'eventuale prezzo in offerta qualora fosse attivo (determinabile tramite clausola WHERE data_inizio<='$oggi' AND data_fine>='$oggi'.codice:CREATE TABLE _offerte ( id int(11) NOT NULL auto_increment, id_articolo int(11) default NULL, data_inizio date default NULL, data_fine date default NULL, prezzo_offerta decimal(10,2) default NULL, PRIMARY KEY (id) );
ulteriore appunto, non sempre l'offerta esiste oppure è valida.
pensavo pertanto di ottenere come risultato della query un tracciato del tipo
id, prezzo_applicato
dove prezzo_applicato è il prezzo più basso tra il prezzo di listino e l'eventuale prezzo_offerta (solo se, come detto, l'offerta è "attiva").
avete suggerimenti da darmi in proposito? io speravo che una generica query come quella sotto potesse funzionare, ma ovviamente mi sbagliavo
SELECT
`_articoli`.id,
`_articoli`.prezzo,
`_offerte`.prezzo_offerta,
`_articoli`.titolo,
MIN(`_articoli`.prezzo, `_offerte`.prezzo_offerta ) as prezzo_applicato
FROM
`_offerte`
INNER JOIN `_articoli` ON (`_offerte`.id_articolo = `_articoli`.id)
WHERE
(`_offerte`.data_inizio <= '2010-03-23') AND (`_offerte`.data_fine >= '2010-03-23')
ringrazio chiunque possa darmi una mano!


Rispondi quotando