- 締切済み
my sql について
こんにちは。 my sql 初心者です。 データをcsv形式でエクスポートする際に問題があり質問です。 商品管理番号 サイズ カラー A S ブルー A M イエロー B S ブルー B M イエロー B L レッド C S ブルー C M ホワイト というデータがあったとします。 ※上記はデータの一部です。実際はもっと文字数もサイズカラーも多いです。 このデータを使ってビューを作成します。 -------------------------------------------------------------------------------- CREATE VIEW item_v_tab AS SELECT id, CONCAT('size:',サイズ,'#','color:',カラー,'=',商品管理番号,'&')AS subcode, 商品管理番号 FROM zaiko; -------------------------------------------------------------------------------- この時にデータ型はmediumtextとなります。 次に、 -------------------------------------------------------------------------------- SELECT id, 商品管理番号, group_concat(distinct subcode order by subcode ASC separator '\n') as subcode FROM item_v_tab group by 商品管理番号; -------------------------------------------------------------------------------- で商品管理番号をグループ化します。 そしてcsvでエクスポートすると subcodeの一部、サイズカラーが多いもので文字数が切れてしまいます。 データ型を変更すれば切れずにすべて出力できるのかな? と考えて調べていたのですが、方法がわかりません。 お分かりになる方お教えいただけないでしょうか。 以上よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
関連するQ&A
- エクセルのフィルタオプションの検索条件について
■受注データ.xls Sheet1 A B C D 1 商品番号 カラー サイズ 商品コード 2 123 白 M 3 123-A BLK S 4 ・ 5 ・ 6 ・ ■商品マスタ.csv Sheet1 A B C D 1 商品番号 カラー サイズ 商品コード 2 123 白 M AAA 3 123-A BLK S AAB 4 ・ 5 ・ 6 ・ 上記の受注データ.xlsの「商品コード」に、商品マスタ.csvの 「商品コード」を転記したいです。 ※「商品コード」は、「商品番号」「カラー」「サイズ」が同じ 場合のみ一致します。 CSVデータが30万件以上あるため、 商品コードが合致するデータのみ別シート、もしくは別ブックに データを抽出する形で行おうと思い、フィルタオプションを使用したいです。 この場合検索条件の数式をどのように指定すればいいでしょうか。 何卒よろしくお願いいたします。
- 締切済み
- その他(ソフトウェア)
- SQLを教えてください
お世話になります。 商品マスタと商品カラーマスタと商品サイズマスタがあります。 商品マスタの一覧を出したいのですが、 商品に付随しているカラーやサイズも一緒に表示したいのです。 商品マスタ(商品ID・商品名) 商品カラーマスタ(商品カラーマスタID・商品ID・カラーID) 商品サイズマスタ(商品サイズID・商品ID・サイズID) カラーマスタ(カラーID・カラー名) サイズマスタ(サイズID・サイズ) という構成です。 商品カラー、商品サイズは商品に対して複数あります。 表示したい一覧は 商品ID・商品名・カラー・サイズ で 商品1つに対して1行で表し カラー列、サイズ列は「赤・黒・茶」「S・M・L」というように 書きたいのです。 SQLでズバッと取得する方法はありますか? 1行1行、商品ごとに カラー・サイズをループしなくてはいけないのでしょうか? 教えてください。 よろしくお願いします。
- ベストアンサー
- Oracle
- 2ファイルを使用し商品単位のサイズ展開を抽出したい
お世話になります。 2つのcsvファイルがあります。 それらを使ってデータを作りだしたいと思っています。 CSVファイル1 A列/ B列 /C列 空白/商品番号/空白 CSVファイル2 A列/ B列 / C列 / F列 /H列 空白/商品番号/タイプ/サイズ/カラー ファイル1と2はB列の商品番号で紐づいていますが ファイル1が親データであるのに対し、 ファイル2はサイズ展開分行数があります。 やりたいことはファイル1の商品番号単位で、 紐づくファイル2のサイズ展開をファイル1のC列にセットしたいです。 データは以下のようにセットされています。 CSVファイル1 A列/ B列 /C列 /0001/ /0002/ /0003/ /0004/ /0005/ CSVファイル2 A列/ B列 /C列 / F列 /H列 /0001/i /50cm / /0001/s / / /0001/s / / /0002/i /60cm / /0002/i /70cm / /0002/s / / /0002/s / / /0003/i /80cm / /0003/i /90cm / /0003/i /100cm / /0003/s / / /0003/s / / /0004/i /50cm / /0004/i /60cm / /0004/s / / /0004/s / / /0005/i /90cm /ブルー /0005/i /90cm /レッド /0005/i /100cm /ブルー /0005/i /100cm /レッド /0005/s / / /0005/s / / このとき、以下のように抽出されてほしいです。 CSVファイル1 A列/ B列 /C列 /0001/△50cm /0002/△60cm△70cm /0003/△80cm△90cm△100cm /0004/△50cm△60cm /0005/△90cm△100cm ※どの商品番号もタイプがsのものが2行あるのですが、 これはサイズ展開に関係ないので無視したいです。 ※タイプがiのものがサイズ展開を司っているので対象です。 ※0005のように、同じ商品番号にカラーが2種類ある場合は その分行が増えるのでサイズ展開としては90cmと100cmしかないのですが、 それが重複して表現されてしまいます。 カラーが複数種類ある商品データは多いので可能な限り 重複は抽出の時点で除きたいです。 ファイル1の親データの時点で1000商品ほどあるため 手作業で確認していくのは厳しく、 お知恵拝借出来たらと考えております。 どうぞ宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- このCSVを加工してからアクセスに取り込むべきか、アクセス上で加工できるか教えてください
あるショッピングカートで出力されるCSVが下記のようになっており、 発送作業に使うために加工が必要と思っております。 【元のCSV】 受注日時、商品番号1数量1サイズ1商品番号2数量2サイズ2・・・、金額 2010/3/28 8:50,<>2S000001:5:::,6500 2010/3/29 9:52,<>1S000004:1::S:<>1S000002:3::L:,13700 2010/3/30 16:25,<>1S000003:1:::<>1S000002:3::L:<>2S000001:1:::,27700 【加工後のCSV】 受注日時、金額、商品番号1、数量1、サイズ1、商品番号2、数量2、サイズ2、・・・ 2010/3/28 8:50,6500,2S000001,5, 2010/3/29 9:52,13700,1S000004,1,S,1S000002,3,L 2010/3/30 16:25,27700,1S000003,1,,1S000002,3,L,2S000001,1, 元のCSVでは全ての商品番号、数量、サイズが1組のコンマの中に収められてしまっているのが問題なんです。 1レコードの商品数は、1回の買い物で何種類の商品を購入するか分からなく、 限度を決められないので、延々と増えてもいいように末尾に置くしかないかと。 本当は元のCSVをアクセスのテーブルにリンクさせ、クエリーで一発解決したいのですが、 無理であれば一旦CSVを正規表現で加工してから、アクセスに取り込もうかと思っています。 アクセス内で解決する方法か、CSV上で一次加工するアドバイスをお願いします。
- ベストアンサー
- オフィス系ソフト
- group_concatを複数列に設定する
こんにちは group_concatを複数列に設定すると、グルーピングした結果が1行に繰り返し表示されてしまいます。 どのように解決すればよろしいのでしょうか? 例)カラムCOL1が主キーのテーブル MAIN_TABLE ----------- COL1| AAAA| SUB_TABLE1 ----------- COL1|VALUE AAAA|111111 AAAA|222222 SUB_TABLE2 ----------- COL1|VALUE AAAA|xxxxxxx AAAA|yyyyyy 上記のテーブルを下記のSQLで連結 SELECT M..COL1 ,group_concat(S1.VALUE,'/') AS GS1 ,group_concat(S2.VALUE,'/') AS GS2 FROM MAIN_TABLE AS M LEFT OUTER JOIN SUB_TABLE1 AS S1 ON M.COL1=S1.COL1 LEFT OUTER JOIN SUB_TABLE2 AS S2 ON M.COL1=S2.COL1 GROUP BY M.COL1 抽出結果が COL1|GS1 | GS2 ------------------------------------------------------------- AAAA|111111/222222/111111/222222|xxxxxxx/yyyyyy/xxxxxxx/yyyyyy と表示されてしまいます。カラムGS1とCS2に表示されているグループの繰り返しを削除し、 抽出結果を COL1|GS1 | GS2 --------------------------------- AAAA|111111/222222|xxxxxxx/yyyyyy にするにはどうすればよいのでしょうか?
- ベストアンサー
- MySQL
- SQLで表の結合
下記の結果になるような構文教えてください。 表1 商品CD カラーCD サイズCD c101 102 501 x201 101 502 d102 103 502 表2 商品CD 商品名 x201 Windows7 d102 Mac c101 Android 表3 CD 名称 101 黄 102 赤 103 緑 501 S 502 M 503 L 欲しい結果 商品CD 商品名 カラーCD 名称 サイズCD 名称 x201 Windows7 102 赤 501 S d102 Mac 101 黄 502 M c101 Android 103 緑 502 M いろいろJOINしてみたのですが、表1と表3を2回参照してエラーが出ちゃいます。 どうぞよろしくお願いします。 使用環境 MySql
- ベストアンサー
- MySQL
- このぐるぐるSQLクエリまとまりますか?
ピボット集計の理解が難しくて難儀してます このような予定表を作るのですが毎月ごとに集計してやるのに 4回問い合わせております。一回でえいやっと投げるにはどう記述しましょう? mysql 5.0です -- 今月 -- SELECT 商品番号,sum(受注金額) FROM 注文受付テーブル where DATE_FORMAT(納入日, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m') group by 商品番号; -- 来月 -- SELECT 商品番号,sum(受注金額) FROM 注文受付テーブル where DATE_FORMAT(納入日, '%Y%m') = DATE_FORMAT(NOW()+ INTERVAL 1 MONTH, '%Y%m') group by 商品番号; -- 再来月 -- SELECT 商品番号,sum(受注金額) FROM 注文受付テーブル where DATE_FORMAT(納入日, '%Y%m') = DATE_FORMAT(NOW()+ INTERVAL 2 MONTH, '%Y%m') group by 商品番号; -- ささらい月 -- SELECT 商品番号,sum(受注金額) FROM 注文受付テーブル where DATE_FORMAT(納入日, '%Y%m') = DATE_FORMAT(NOW()+ INTERVAL 3 MONTH, '%Y%m') group by 商品番号;
- 締切済み
- MySQL
- エクセルのフィルタオプションについて
エクセルのフィルタオプションを使用して、以下のことを行いたいです。 可能でしょうか?可能な場合、方法を教えていただけると助かります。 【やりたいこと】 商品マスタ.csvにある「商品コード」を、受注データ一覧.xlsに転記したい。 【条件】 ・商品マスタ.csv マスタには、「商品コード」「商品番号」「カラー」「色」が含まれています。 ・受注データ一覧.xls 受注データには、「商品番号」「カラー」「色」のデータはありますが、 「商品コード」がありません。 ※受注データの「商品番号」「カラー」「色」がマスタのデータと一致する場合のみ 「商品コード」を転記したいです。 CSVファイルのデータが30万件以上あるため、間違いがないようどうしても 手作業ですることを防ぎたいです。 急ぎの作業のため、何卒お力を貸してください。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルデータ検索方法を教えてください!
エクセルで下記のような検索をしたいと思っています。 VBAの知識がないので、関数で行いたいです。 Sheet1 G H I J 1 商品番号 カラー サイズ コード 123 白 M Sheet2 A B C D 1 商品番号 カラー サイズ コード 123 白 M aaa 上記のようにシートが分かれています。 Sheet1の「商品番号」「カラー」「サイズ」と、Sheet2の「商品番号」「カラー」「サイズ」 が対応しており、3つの条件すべてに合致するSheet2の「コード」を、Sheet1の「コード」に 表示させたいです。 データが膨大にあるのですが、大変急ぎの作業のため、どうぞよろしくお願いします。
- 締切済み
- その他([技術者向] コンピューター)