バージョン選択

フォーラム

メニュー

オンライン状況

33 人のユーザが現在オンラインです。 (26 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 33
もっと...

サイト内検索

質問 > 管理機能 > CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kctakeyama
投稿日時: 2010/6/21 12:48
対応状況: −−−
常連
登録日: 2009/8/18
居住地:
投稿: 60
CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
いつもお世話になっております
CSVの高度な出力より、受注情報と詳細情報より、飛伝用のCSVを作製したのですが、
いままで1種類の商品を扱っていたのですが
今度複数の商品を取り扱うことになりました
ここで、CSVへ出力時に1オーダーを下記のように1行で出力したい場合はどのようにSQLを組めばよいでしょうか?

以前使用していたSQL
order_pref || order_addr01 || order_addr02 as 予約者住所 ,
〜省略〜
deliv_pref || deliv_addr01 || deliv_addr02 as 受取人住所
FROM
dtb_order AS T1 INNNER JOIN dtb_order_detail AS T2 USING (order_id )



出力例
dtb_order     
---
order_id
1000
2000

dtb_order_detail
---
order_id 商品CD 個数
1000    100  5
1000    200  10
2000    200  5



CSV出力時
order_id 商品CD1 個数1  商品CD2 個数2
1000    100   5     200   10
2000              200   5


毎回すいませんが、よろしくお願いいたします。
AMUAMU
投稿日時: 2010/6/21 13:21
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
複数行のデータを1行にするSQLは、最大数が分かっていればサブクエリを駆使すれば可能です。(PostgreSQLなら確実ですが、MySQLに集計系関数あったかな・・・?)

集計関数をマクロで作れば最大数に関係なく作れます。
どちらにしろ、比較的な高度なSQL文の組み立てになります。

SQLのマニュアルを参照されたり、Tipsをネットで探されると良いと思います。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

kctakeyama
投稿日時: 2010/6/21 13:57
対応状況: −−−
常連
登録日: 2009/8/18
居住地:
投稿: 60
Re: CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
ありがとうございます
PostgreSQLなので、サブクエリを使用できるとは思うのですが、
作成したことがないので、何をすればいいのかがさっぱりわかりません;;


ネットでの検索でも有用なところを見つけることができなかったので参考までに教えていただけないでしょうか

厚かましいお願いとは重々認識しておりますが、よろしくお願いいたします
AMUAMU
投稿日時: 2010/6/21 14:42
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
PostgreSQLで、たぶんバージョン依存しなそうなものを考えると
SELECT array_to_string( ARRAY( SELECT product_code FROM dtb_order_detail WHERE order_id = ? ) , ',');

って感じがヒントになりますか?

バージョン依存していいならpartionやrow_number関数が非常に有用かつ便利です。←こっちのほうが正しいアプローチ。上は簡易型

なお質問される際には下記を参考にされて、必ず環境やバージョンを書くようにしましょう。
http://xoops.ec-cube.net/modules/tinyd0/index.php?id=8


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

kctakeyama
投稿日時: 2010/6/21 18:00
対応状況: −−−
常連
登録日: 2009/8/18
居住地:
投稿: 60
Re: CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
早い回答ありがとうございます。

他のほしい項目(名前、住所など)の後に上記の式を入れればよいのでしょうか?

>なお質問される際には下記を参考にされて、必ず環境やバージョンを書くようにしましょう。


すいません、環境を書きそびれておりました。
下記に記載させていただきます。

====

[EC-CUBE] 2.4.1
[OS] Windows2008Server
[PHP] PHP 5.2.9
[データベース] postgreSQL 8.4
[WEBサーバ] IIS7.0
[ブラウザ] IE7.0〜8.0

AMUAMU
投稿日時: 2010/6/21 19:20
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
PostgreSQL 8.4でしたら、集計関数が充実していますので下記が参考になると思います。
下記はOracleの場合ですが、互換関数がPostgreSQL8.4にもあります。
http://oshiete.goo.ne.jp/qa/1828920.html


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

kctakeyama
投稿日時: 2010/6/25 10:30
対応状況: −−−
常連
登録日: 2009/8/18
居住地:
投稿: 60
Re: CSV出力で複数の種類の注文を1行にまとめたい場合の対処方法を教えてください。
ありがとうございました。

まだ完全にはできておりませんが、こちらで試してみようと思います
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,920名です
総投稿数は110,012件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.