[前][次][番号順一覧][スレッド一覧]

mysql:5569

From: "yosinaka tosimizu" <"yosinaka tosimizu" <tosibe@xxxxxxxxxx>>
Date: Tue, 28 May 2002 14:35:25 +0900
Subject: [mysql 05569] Re: left outer join  について

よしなかです。

質問してから時間がたってしまいましたが、解決したので
報告させていただきます。

> とみたです。
>
> # 関係ない話題に返信で新しい話題を出すのはやめましょうね。

申し訳ないです。以後気をつけますのでお許しください。

> > 望む動作としては請求種別にある種別項目はすべて出力し
> > 日付とマッチしない請求種別項目も出力させたいのです。
>
> 「where NYUKIN_KANRI.seikyu_date = '20020521'」という条件を指定してい
> るので、ムリのような…。
>
> この条件を「where NYUKIN_KANRI.seikyu_date = '20020521' or
> NYUKIN_KANRI.seikyu_date is null」とかにしてみてはどうでしょう?

とみたさんのご指摘のようにwhere条件に日付を指定していたのが
間違いのもとでした。

でもなかなか解決策が思い浮かばなくて、ここ三日ほどずっと考え続けていました。
結論として、where条件に日付を入れるのではなくて、テーブル結合条件に入れてみ
たら
望む結果が取得できました。

<元のSQL文>

select
    SEIKYU_SYUBETU.seikyu_syubetu_name as seikyu_syubetu_id,
    sum(NYUKIN_KANRI.seikyu_kingaku) as seikyu_kingaku
from
    SEIKYU_SYUBETU
left outer join
    NYUKIN_KANRI
on
    SEIKYU_SYUBETU.seikyu_syubetu_id = NYUKIN_KANRI.seikyu_syubetu_id
where
    NYUKIN_KANRI.seikyu_date = '20020521'
group by
    SEIKYU_SYUBETU.seikyu_syubetu_id

<変更したSQL文>

select
    SEIKYU_SYUBETU.seikyu_syubetu_name as seikyu_syubetu_name,
    sum(NYUKIN_KANRI.seikyu_kingaku) as seikyu_kingaku
from
    SEIKYU_SYUBETU
left join
    NYUKIN_KANRI
on
    SEIKYU_SYUBETU.seikyu_syubetu_id = NYUKIN_KANRI.seikyu_syubetu_id
and
    NYUKIN_KANRI.seikyu_date = '20020525'
group by
    SEIKYU_SYUBETU.seikyu_syubetu_id

とみたさん、ヒントを与えてくださってありがとうございました。
今回初めて質問させてもらったんですが、わからないまま仕方ないから
納品してしまおうかなどと考えても見ましたが、大変助かりました。
ありがとうございます。

LOOSE-FITS-SMART


[前][次][番号順一覧][スレッド一覧]

      5541 2002-05-23 22:57 [西出 学 <Nishide@xxx] トランザクション開始でエラー発生        
      5545 2002-05-24 18:45 ┗[Kengo Jinno <kengo@x]                                       
      5549 2002-05-25 00:16  ┗["yosinaka tosimizu" ] left outer join  について          
      5551 2002-05-25 09:52   ┗[とみたまさひろ <tomm]                                   
->    5569 2002-05-28 14:35    ┗["yosinaka tosimizu" ]