Я снова здесь с другим вопросом / проблемой.Я знаю, что заголовок этой темы может быть похож на некоторые другие здесь, но я заметил, что у них были другие проблемы с этим.
У меня проблема с SQL LEFT JOIN.Я использую MySQL.
Я хочу иметь таблицу, в которой TYPES будет рассчитан на шесть месяцев, а вычисления - на один месяц (это может показаться странным, но мне это нужно для некоторых целей).
У меня есть два запроса (я покажу запрос и вывод, чтобы он был более конкретным).
Первый запрос на шесть месяцев:
SELECT objectsoort AS types, COUNT(objectsoort) AS total, prijs AS price, SUM(prijs)/ SUM(oppervlakte) AS meters
FROM `huislijn`
WHERE <clause statements>
GROUP BY objectsoort
И я получаю результат, подобный этому:
Six_months http://i56.tinypic.com/14ag1zs.png
Второй запрос для одного месяца:
SELECT objectsoort AS types1, COUNT(objectsoort) AS total1, AVG(prijs) AS price1, SUM(prijs)/ SUM(oppervlakte) AS meters1
FROM `huislijn`
WHERE <clause statements>
GROUP BY objectsoort
Тогда я получаю такой результат:
Один месяцhttp://i53.tinypic.com/i20haa.png
Я хочу сделать их как единое целое, поэтому я использую LEFT JOIN и получаю запрос, подобный следующему:
SELECT a.types1, b.total1, b.price1, b.meters1
FROM (SELECT objectsoort AS types1
FROM `huislijn`
WHERE <clause statements> ) a
LEFT JOIN
(SELECT objectsoort AS types12, COUNT( objectsoort ) AS total1, AVG( prijs ) AS price1, SUM( prijs ) / SUM( oppervlakte ) AS meters1
FROM `huislijn`
WHERE <clause statements> ) b
ON a.types1 = b.types12
GROUP BY types1
НО результат не тот, который я ожидал, потому что долженбыть некоторый результат около 'appartement' и 'выигрышных' результатов не совпадает с запросом за один месяц:
и в одном http://i54.tinypic.com/20qcj8w.png
Я повторяю, что это было бы более ясноЯ хочу типы шести месяцев и расчеты за один месяц.В данном случае это означает, что результаты должны быть близки к «аппартаментам» и «выигрышам».
Итак, я хотел знать, может, я что-то не так делаю.
Спасибо за вашу помощь иподдержка.