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
ciao, premesso che forse sono io che oggi non connetto bene....
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:
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 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ù.
se poi su skype stessi online...
ciao