カテゴリ内のベンダーからの結果を含むマトリックス テーブルを表示しようとしています。お気に入り:
+-----------+-------------+-------------+------+
| | Category 1 | Category 2 | ... |
+-----------+-------------+-------------+------+
| Vendor 1 | 8900 | 0 | ... |
| Vendor 2 | 56890 | 4000 | ... |
| ... | ... | ... | ... |
+-----------+-------------+-------------+------+
私はすでに 1 つのベンダーに対してクエリを作成しました。
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 |
| ... | ... |
+-------------+---------+
ここで、特定のオフィスのベンダーごとにこのクエリを連結したいと考えています。
まず、 で置き換え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