重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

請求明細テーブルと、支払明細テーブルの指定伝票番号で結合して、
請求明細テーブルの全レコードと、支払明細テーブルの請求明細テーブルと一致するレコードだけを表示させたく、結合プロパティをそのように設定しました。
SQLは、下記のようになりました。

select 請求明細.指定伝票番号, 請求明細.計 from 請求明細 left join 支払明細 on 請求明細.指定伝票番号=支払明細.指定伝票番号

すると、思わぬことがおきました。
請求明細テーブルの全レコードが表示されず、一部欠落してしまいました。
同じような質問をしている人の、回答を見させていただいたところ、上記のSQLで合っているようでした。
一体なにが起きているんでしょうか??教えてください。

A 回答 (3件)

こんにちわ^^


できればもう少し情報をもらいたいのですが・・・。
テーブル構造(両方)と何が欠落したのかがほしいです^^
SQLは恐らくあってると思いますが・・。
select
請求明細.指定伝票番号,
請求明細.計
from
請求明細,
支払明細
where
請求明細.指定伝票番号 = 支払明細.指定伝票番号(+)

もう少し情報をください^^
    • good
    • 0
この回答へのお礼

ごめんなさい。私の勘違いみたいです。
金額が減っていたので、欠落していると思っていましたが、
件数は増えているので、マイナス金額が重複しているようです。
質問の内容が変わってしまうのですが、もしわかれば教えてください。
指定伝票番号が、請求明細テーブルにも、支払明細テーブルにも
複数ある場合、結合が重複してしまうのでしょうか?

お礼日時:2007/03/13 10:53

横から失礼して・・・


テーブル名を見ると「請求明細」、「支払明細」なので、あくまでも請求
書の合計額ではなくて、明細記録が記録されているという前提で、
> 請求明細テーブルの全レコードと、支払明細テーブルの請求明細
> テーブルと一致するレコードだけを表示させたく、結合プロパテ
> ィをそのように設定しました。
請求が無い支払いが存在しないと考えれば、請求明細の全レコードを表示させれば、結合プロパティを設定させる必要が無いような、気がするのですが・・・
他に
・Select節で「支払明細」が関与をしてないこと
・明細同士の結合で重複して出てくること
を考えると・・・単純に

SELECT
請求明細.指定伝票番号 AS 請求伝票番号,
Sum(請求明細.計) AS 請求書合計
FROM 請求明細
GROUP BY 請求明細.指定伝票番号;

で、良いとかと言う、勘違いか・・・
請求書があるのに、まだ支払っていない、支払い忘れてる、ってのを調べる気なら、

SELECT 請求明細.指定伝票番号,
(SELECT Sum(Sub_請求.計) FROM 請求明細 As Sub_請求
GROUP BY Sub_請求.指定伝票番号
HAVING Sub_請求.指定伝票番号=請求明細.指定伝票番号) AS 請求合計,
(SELECT Sum( Sub_支払.計) FROM 支払明細 As Sub_支払
GROUP BY Sub_支払.指定伝票番号
HAVING Sub_支払.指定伝票番号=請求明細.指定伝票番号) AS 支払合計
FROM 請求明細
GROUP BY 請求明細.指定伝票番号;

と、不恰好な気がするけど何とか行けると思うけど・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ、請求明細にはあり、支払明細には無い場合もあり、請求額、支払額、差額の3項目を表示させたいので
結合させなくてはいけないのかと思いました。

データの欠落は、私の勘違いだったので、重複しているのは、クエリをもう一つ増やして、集計してから、結合させたら、うまくいきました。
ありがとうございました。

お礼日時:2007/03/13 15:27

こんにちわ^^


複数あるとはどのような事でしょうか?
請求明細 指定伝票番号
     A000001
     A000002
     A000002
     A000003
支払明細 指定伝票番号
     A000001
     A000001
     A000002
     A000004
見たいな事ですか?

まずはprimary keyが何に指定してあるのかを教えてください^^
がんばって解決しましょう★

この回答への補足

そういう感じです。
キーとしたいのは、指定伝票番号なんですが、それが重複してしまっています。
先に、集計をするなどして、指定伝票番号が重複しなくすればいいんでしょうか??

補足日時:2007/03/13 12:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!