2013-04-28 6 views
0

У меня есть SQL-запрос, который находит средний возраст каждого человека, который покупает определенный тип свойства. Запрос возвращает средний возраст для каждого типа свойства, но не включает тип свойства, где поле «средний возраст» равно null. Как мне это сделать?Включая значения Null в запросе SQL

SELECT round(avg(round((datediff(now(),dateofbirth)/365),0))) as 'Average Age', propertyname 
from apartment, buyer 
WHERE buyer.propertyID = apartment.propID 
group by propertyname 
UNION 
SELECT round(avg(round((datediff(now(),dateofbirth)/365),0))) as 'Average Age', propertyname 
from house, buyer 
WHERE buyer.propertyID = house.propID 
group by propertyname 
+0

ВЫБРАТЬ раунд (ср (круглые ((DateDiff (теперь(), DateOfBirth)/365), 0))) как 'Средний возраст', PROPERTYNAME из квартиры, Покупатель WHERE buyer.propertyID = квартира.propID (+) группа по имени собственности UNION SELECT round (avg (round ((датфик (теперь(), дата рождения)/365), 0))) как «Средний возраст», propertyname от дома, покупатель WHERE buyer.propertyID = house.propID (+) group by propertyname - попробуйте выполнить этот – Satya

+0

, который дает мне ошибку: '# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с группой) по имени свойства UNION SELECT round (avg (round ((dateiff (now(), dateofbirth 'в строке 1', спасибо в любом случае :) – user2328961

+0

Когда вы вводите «из квартиры, покупателя», вы делаете INNER JOIN. Используйте LEFT OUTER JOIN для включения результатов из левой таблицы (свойства в этом случае) без соответствующей записи в другой таблице. – Tallmaris

ответ

0

Try:

SELECT round(avg(round((datediff(now(),dateofbirth)/365),0))) as 'Average Age', 
     propertyname 
from apartment 
LEFT JOIN buyer ON buyer.propertyID = apartment.propID 
group by propertyname 
UNION ALL 
SELECT round(avg(round((datediff(now(),dateofbirth)/365),0))) as 'Average Age', 
     propertyname 
from house 
LEFT JOIN buyer ON buyer.propertyID = house.propID 
group by propertyname 
+0

Это работает! Большое спасибо за помощь, новую для SQL и не совсем понял эту – user2328961

Смежные вопросы