카테고리에있는 공급 업체의 결과가있는 매트릭스 테이블을 표시하려고합니다. 마찬가지로 :행 당 Mysql 하위 쿼리
SELECT ut.unit_name, IFNULL(SUM(commission_fix_out),0)
FROM transaction t
JOIN office_per_transaction opt
ON t.id = opt.transaction_id
JOIN_vendor_per_transaction ppt
ON t.id = ppt.transaction_id
AND ppt.vendor_id = 2
RIGHT JOIN unit_type ut
ON t.unit_type_id = ut.id
AND transaction_end_week BETWEEN 0 AND 14
AND YEAR(transaction_end_date) = 2012
GROUP BY ut.id
나에게 다음과 같은 결과 제공 :
+-------------+---------+
| Category | Result |
+-------------+---------+
| Category 1 | 56890 |
| Category 2 | 4000 |
| ... | ... |
+-------------+---------+
지금 내가이 쿼리의 연결을보고 싶습니다를
+-----------+-------------+-------------+------+
| | Category 1 | Category 2 | ... |
+-----------+-------------+-------------+------+
| Vendor 1 | 8900 | 0 | ... |
| Vendor 2 | 56890 | 4000 | ... |
| ... | ... | ... | ... |
+-----------+-------------+-------------+------+
이미 하나 개의 공급 업체에 대한 쿼리를 만들어 주어진 사무실에서 벤더 당.
먼저 AND ppt.vendor_id = 2
을 AND ppt.vendor_id IN (SELECT id FROM vendor WHERE office_id = 1)
으로 바꾸려고 시도했지만 그 결과 내 사무실에있는 모든 공급 업체의 총 결과가 나왔습니다.
두 번째로 하위 쿼리를 사용해 보았습니다. 하지만 그건 알 수없는 열이라는 오류를 내게했습니다.
+-----------+--------- -------+
| Vendor | Results |
+-----------+-----------------+
| Vendor 1 | 8900,0,... |
| Vendor 2 | 56890,4000,... |
| ... | ...,...,... |
+-----------+-----------------+
내가 비현실적인 무언가를 시도하고 있는데 오히려 업체 당 쿼리 이상 수행해야합니다
은 무엇 내가 달성하고자하는 것은 같은 결과 집합입니다. 아니면 내가 여기서 뭔가를 놓치고 있니?
@SashiKant 나는 마지막 날 많은 쿼리를 시도했다, 그러나이 같은했다 :
SELECT v.id, GROUP_CONCAT(r.result) FROM vendor v,
(SELECT ut.unit_name, IFNULL(SUM(commission_fix_out),0) as result
FROM transaction t JOIN office_per_transaction opt ON t.id = opt.transaction_id
JOIN vendor_per_transaction ppt ON t.id = ppt.transaction_id
AND ppt.vendor_id = p.id
RIGHT JOIN unit_type ut ON unit_type_id = ut.id
AND transaction_end_week BETWEEN 0 AND 14
AND YEAR(transaction_end_date) = 2012 GROUP BY ut.id) as r
두 번째 쿼리가 무엇을 선택합니까? –