ciao, premesso che forse sono io che oggi non connetto bene....Originariamente inviato da michellemabelle
Ho provato a farla e mi esce così, non mi dà errore ma non sono neanche sicura che esca corretta:
codice:SELECT annuncio.id_a, r1.comune, im1.tipo FROM annuncio JOIN immobile im1 ON (annuncio.id_i = im1.id_i) JOIN recapito r1 ON (im1.id_i = r1.id_i) WHERE annuncio.prezzo IS NOT NULL AND (annuncio.prezzo/im1.mq) < ALL (SELECT (AVG(annuncio.prezzo)/im2.mq)*20/100 FROM annuncio JOIN immobile im2 ON (annuncio.id_i = im2.id_i) JOIN recapito r2 ON (im2.id_i = r2.id_i) WHERE annuncio.prezzo IS NOT NULL AND annuncio.attivo = TRUE GROUP BY im2.mq) GROUP BY r1.comune, im1.tipo, annuncio.id_a ORDER BY annuncio.id_a
volevo fare qualche prova con i tuoi dati, ma trovo difficoltà a crearmi il db tramite cio che hai postato.
hai scritto tu la struttura di questo db?
io credo che la citta dell'immobile dovrebbe essere rappresentata da un id e non da uno nome citta, nome prvincia e nome regione
ad ogni modo, io cercherei prima di scrivere una query per ottenere
"il costo medio al metro quadro degli annunci attivi per immobili della stessa città e della stessa tipologia."
quindi qualcosa del genere:
se tu, postassi le strutture tabelle in una sinatssi SQL più standard, e se postassi i dati in una sintassi tipo INSERT.... potrei approfondire un po di più.codice:SELECT immobile.tipo, recapito.comune, recapito.provincia, recapito.regione, AVG(annuncio.prezzo)/im2.mq) prezzomedio FROM annuncio JOIN immobile im2 ON (annuncio.id_i = im2.id_i) JOIN recapito r2 ON (im2.id_i = r2.id_i) WHERE annuncio.prezzo IS NOT NULL AND annuncio.attivo = TRUE GROUP BY immobile.tipo, recapito.comune, recapito.provincia, recapito.regione
se poi su skype stessi online...
ciao

