- 締切済み
4つのテーブルで構成される売上データをまとめたい
お世話になっております。4つのテーブルの結合について質問させて下さい。(MySQL5) データベースの内容は販売に関するもので、以下のような4つのテーブルがあります。(不必要なカラムは省略しています) テーブル名:goods(商品 goods_no | goods_name 1 りんご 2 みかん 3 いちご テーブル名:member(顧客データ) member_no | member_name 1 鈴木 2 佐藤 3 小林 4 斉藤 テーブル名:slip(伝票番号) slip_no|sales_member_no|sales_date 1 2 2013-6-1 2 4 2013-6-1 3 1 2013-6-2 4 3 2013-6-3 ※slip.sales_member_no = member.member_noです。 テーブル名:sales(売上から入金までのデータを時系列で登録) sales_no|sale_slip_no|sales_goods_no|sales_goods_price|sales_goods_cnt|request|receipt 1 1 2 350 5 1750 2 1 3 400 3 1200 3 2 1 200 5 1000 4 2 3 400 4 1600 5 1 receipt 2950 6 2 receipt 2600 7 3 1 200 8 1600 8 4 2 350 5 1750 9 3 receipt 1600 10 4 receipt 1750 ※sales.sale_slip_no=slip.slip_noです。 sales.sales_goods_no=goods.goods_noです。 以上のようなテーブルがあり、4つのテーブルを結合して、 伝票単位で、売上詳細(sales)、商品名(goods)、顧客名(member)を以下のように伝票番号順で一覧で表示したいと考えていますが、エラーだったり、期待している結果を得ることが出来ません。 どのようにすれば宜しいのかアドバイスのほど頂戴出来れば幸いです。 slip_no 商品名 個数 単価 請求額 入金額 1 みかん 5 350 1750 1 いちご 3 400 1200 1 2950 2 りんご 5 200 1000 2 いちご 4 400 1600 2 2600 3 りんご 8 200 1600 3 1600 4 みかん 5 350 1750 4 1750 以上、お忙しい中恐縮ですが、宜しくお願い申し上げます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- saku660
- ベストアンサー率100% (2/2)
基本的な問題です sales_goods_noはreceiptを含むので文字列 goods_noはPK(プライマリーキー)なので整数です。 整数と文字列はJOIN(結合)出来ません 解決策 (1)receiptを9999とかにしましょう(商品数が多い場合もっと大きくする必要があります) (2)sales_goods_noを整数(int)にします。 エラーがうるさい場合テーブルを作り直してください。 (3)goodsテーブルに goods_no=9999, goods_name=""というレコードを追加してください それでエラーは出ないはずです 最後に1つ言いたいことがあります。 普通質問するときは、エラー内容をコピペして添付します。最低限のマナーです。 それを怠ると、海外だと無視されることもあります。 日本はエスパーがおおいのでみんなさん的確に類推して答えてくれますが エラー内容がわかればこちらも答えるのが楽になります。 そもそも、エラー内容読みましたか?
お礼
saku660さま 早々の貴重なアドバイスをありがとうございます。 質問を投稿したあとも色々と考え、先ほど、描いていた内容を抽出することが出来ました。 エラー文の告知もふくめ、貴重なアドバイスをありがとうございました。 次回質問させて頂く際には気を付けたく思います。 お忙しい中のご対応、ありがとうございました。