#3です
たとえばこんな感じで検討してみてはどうでしょうか?
テーブル、member=販売先管理テーブル,slip=伝票管理テーブル,sales=売上集計テーブル
create table member(member_no int,name varchar(20),index(member_no,name));
insert into member values(1,'佐藤'),(2,'小島'),(3,'石田'),(4,'鈴木');
create table slip (slip_no int,member_no int,sales_date date,index(slip_no,member_no,sales_date));
insert into slip values(1,2,'2013-06-06'),(2,1,'2013-06-07'),(3,4,'2013-06-08'),(4,3,'2013-06-08');
create table sales(sales_no int,sale_slip_no int,goods_name varchar(30) null,request_money int null,receipt_money int null,index(sale_slip_no,request_money,receipt_money));
insert into sales values(1,1,'キュウリ',5250,null),(2,1,'イチゴ',3150,null),(3,1,'バナナ',8400,null),(4,2,'りんご',5250,null),(5,2,null,null,3000),(6,3,'ほうれん草',9450,null),(7,3,'しいたけ',2100,null),(8,4,'マンゴー',6300,null);
//販売一覧を表示
select sales_no,sale_slip_no,sales_date,member_no,goods_name,request_money,receipt_money
from sales as t1
left join slip as t2 on t1.sale_slip_no=t2.slip_no
//集計
select t1.sale_slip_no,t2.sales_date,t3.name,ifnull(sum(request_money),0)-ifnull(sum(receipt_money),0) as request_mony
from sales as t1
left join slip as t2 on t1.sale_slip_no = t2.slip_no
left join member as t3 on t2.member_no = t3.member_no
group by sale_slip_no
お礼
yambejpさま こんばんは。お世話になっております。 実際にSQLまでご提示頂き感謝です。ありがとうございます! yambejpさまのテーブル構成、拝見いたしました。 確かに、見た目だけではなく、売上内容と伝票データを別にすることで、整った形かと思います。見ていてうなずけました。 yambejpさまご提示の3種のテーブルをみると、顧客情報、伝票情報、売上詳細の3種になっていますが、この売上詳細である、salesを見ると、当初の私の質問時に書いたsalesと比較し、sales_date、member_noを省略し、sales_slip_noで紐付けることが出来る、というのが分かります。 そこで、勉強のつもりで、恥を承知で改めて質問させて下さい。 (教えて君のようで恐縮なのですが)今回の私の質問にある、伝票番号毎の合計(入金も含む)を集計するにはどのようなSQLになるのか、お教え頂くことは可能でしょうか? 今回の伝票番号単位での集計だけであれば、今回私が質問時に提示した構成でも問題はなさそうですが、売上詳細を含まない集計まで視野に入れると、やはりyambejpさまご提示構成の方が適切だろうな...という考えに至っていますが、3つのテーブルを結合しての集計処理に、今回の質問以上に難しく思えてしまって... 恐れ入ります。お忙しい中恐縮ですが引続きアドバイスを頂戴出来れば幸いです。 宜しくお願い申し上げます。