こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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


以上、お忙しい中恐縮ですが、宜しくお願い申し上げます。

投稿日時 - 2013-07-08 01:12:36

QNo.8167091

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

基本的な問題です

sales_goods_noはreceiptを含むので文字列

goods_noはPK(プライマリーキー)なので整数です。

整数と文字列はJOIN(結合)出来ません

解決策
(1)receiptを9999とかにしましょう(商品数が多い場合もっと大きくする必要があります)

(2)sales_goods_noを整数(int)にします。 エラーがうるさい場合テーブルを作り直してください。

(3)goodsテーブルに goods_no=9999, goods_name=""というレコードを追加してください

それでエラーは出ないはずです


最後に1つ言いたいことがあります。

普通質問するときは、エラー内容をコピペして添付します。最低限のマナーです。

それを怠ると、海外だと無視されることもあります。

日本はエスパーがおおいのでみんなさん的確に類推して答えてくれますが

エラー内容がわかればこちらも答えるのが楽になります。

そもそも、エラー内容読みましたか?

投稿日時 - 2013-07-08 10:32:49

お礼

saku660さま

早々の貴重なアドバイスをありがとうございます。
質問を投稿したあとも色々と考え、先ほど、描いていた内容を抽出することが出来ました。

エラー文の告知もふくめ、貴重なアドバイスをありがとうございました。
次回質問させて頂く際には気を付けたく思います。

お忙しい中のご対応、ありがとうございました。

投稿日時 - 2013-07-08 10:40:06

あなたにオススメの質問