質問 > 管理機能 > 高度な設定でのCSV出力方法について |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nksm |
投稿日時: 2014/7/31 19:04
対応状況: −−−
|
半人前 登録日: 2012/4/25 居住地: 投稿: 24 |
高度な設定でのCSV出力方法について EC-CUBE 2.11.5
DBサーバー PostgreSQL 8.1.23 PHP 5.3.28 高度な設定にSQLを登録し、当日の受注商品一覧CSVを作成し、 各商品ごとにその商品を受注している注文番号も出力したいと考えております。 下記で該当する注文番号まで出力されているのですが、同一の商品があった場合に複数行に分かれてしまいます。 同一の商品は一行にまとめ、該当する注文番号は一つのセルにカンマ区切りで表示させたいのですが どなたか実現方法をご教示頂けないでしょうか。 product_code as "商品コード", p.name as "商品名", quantity as "数量", array_to_string(array(select order_id FROM dtb_order WHERE d.order_id = order_id AND to_char(payment_date ,'YYYY-MM-DD') = CURRENT_DATE), ' / ') FROM dtb_order AS o LEFT JOIN dtb_order_detail AS d ON o.order_id = d.order_id LEFT JOIN dtb_products AS p ON d.product_id = p.product_id WHERE to_char(o.payment_date ,'YYYY-MM-DD') = CURRENT_DATE AND o.del_flg = 0 ORDER BY product_code 尚、下記の様にarray_to_string、arrayを用いてみましたが上手く出力できませんでした。 product_code as "商品コード", max(p.name) as "商品名", sum(quantity) as "数量", array_to_string(array(select o.order_id FROM dtb_order AS o LEFT JOIN dtb_order_detail AS d ON o.order_id = d.order_id WHERE to_char(o.payment_date ,'YYYY-MM-DD') = CURRENT_DATE), ' / ') FROM dtb_order AS o LEFT JOIN dtb_order_detail AS d ON o.order_id = d.order_id LEFT JOIN dtb_products AS p ON d.product_id = p.product_id WHERE to_char(o.payment_date ,'YYYY-MM-DD') = CURRENT_DATE AND o.del_flg = 0 GROUP BY product_code ORDER BY product_code また、MySQLを利用していた際は下記SQLの登録にて希望通りのCSVを出力できておりました。 product_code as "商品コード", p.name as "商品名", sum(quantity) as "数量", GROUP_CONCAT(concat(DATE_FORMAT(o.create_date,'%y%m'),o.order_id) SEPARATOR ' / ') as "該当注文番号" FROM dtb_order AS o LEFT JOIN dtb_order_detail AS d ON o.order_id = d.order_id LEFT JOIN dtb_products AS p ON d.product_id = p.product_id WHERE o.status = 6 AND DATE_FORMAT(o.payment_date,'%Y/%m/%d') = DATE_FORMAT(now(),'%Y/%m/%d') AND o.del_flg = 0 GROUP BY product_code どなたかお知恵を頂けましたら幸いです。 |
yuh |
投稿日時: 2014/7/31 19:17
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 高度な設定でのCSV出力方法について ちょっと手元にPostgreSQLの環境が無いのでなんともですが、
GROUP BYしてないっぽいですが、それが原因じゃないですか? |
nksm |
投稿日時: 2014/8/1 10:17
対応状況: −−−
|
半人前 登録日: 2012/4/25 居住地: 投稿: 24 |
Re: 高度な設定でのCSV出力方法について コメントありがとうございます。
上記コードでGROUP BYを掛けてみると下記エラーが出てしまいます。 MDB2 Error: unknown error prepare: [Error message: Unable to create prepared statement handle] [Last executed query: SELECT sub_data FROM dtb_module WHERE module_code = $1 ] [Native message: ERROR: subquery uses ungrouped column "d.order_id" from outer query] SQLの知識が乏しく、見様見真似で作業している為、 何をどう修正して良いものか行き詰っている状態です。 何かお分かりになりましたら宜しくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |