Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(with句などをつかってSQL分離)
閲覧数:314
掲示板(with句などをつかってSQL分離)
名前
匿名
題名 with句などをつかってSQL分離
質問内容

質問を評価する
(0ポイント)
部分的にselect句を分離させて、定義したいです。
with句かストアドなどを使って、動的にパラメータを挿入したい。


SELECT
       hdrbase.outstockdate,
       hdrbase.base_to,
       hdrbase.base_from,
       hdrbase.modelsum,
       hdrbase.taku as no,
    case     
      when hdrbase.taku<>'1'
        then (
                SELECT
                    count(dtl.control_id)
                FROM
                    CONTROL_DTL dtl left join CONTROL_HDR cthdr on(dtl.control_id=cthdr.control_id)
                WHERE
                    hdrbase.outstockdate=cthdr.outstockdate AND
                    hdrbase.base_to=cthdr.base_to AND
                    hdrbase.base_from=cthdr.base_from and
                  hdrbase.taku=cthdr.orderid and
                    dtl.deliverdate is not null

             ) 
        else (
                SELECT
                    count(dtl.control_id)
                FROM
                    CONTROL_DTL dtl left  join CONTROL_HDR cthdr on(dtl.control_id=cthdr.control_id)
                WHERE
                    hdrbase.outstockdate=cthdr.outstockdate AND
                    hdrbase.base_to=cthdr.base_to AND
                    hdrbase.base_from=cthdr.base_from  and
                    dtl.deliverdate is not null

             ) 
    end deliveryDate
,
    case     
      when hdrbase.taku<>'1'
        then (
                SELECT
                    count(dtl.control_id)
                FROM
                    CONTROL_DTL dtl left join CONTROL_HDR cthdr on(dtl.control_id=cthdr.control_id)
                WHERE
                    hdrbase.outstockdate=cthdr.outstockdate AND
                    hdrbase.base_to=cthdr.base_to AND
                    hdrbase.base_from=cthdr.base_from and
                  hdrbase.taku=cthdr.orderid and
                    dtl.recieptdate is not null

             ) 
        else (
                SELECT
                    count(dtl.control_id)
                FROM
                    CONTROL_DTL dtl left  join CONTROL_HDR cthdr on(dtl.control_id=cthdr.control_id)
                WHERE
                    hdrbase.outstockdate=cthdr.outstockdate AND
                    hdrbase.base_to=cthdr.base_to AND
                    hdrbase.base_from=cthdr.base_from  and
                    dtl.recieptdate is not null

             ) 
    end recieptDate
        
    FROM
        (
    SELECT
            hdr.outstockdate,
            hdr.base_to,
            hdr.base_from,
            sum(hdr.modelcount_plan) as modelsum     ,
            hdr.taku
        FROM
            (SELECT
                control_id,
                outstockdate,
                base_to,
                base_from,
                modelcount_plan,
                orderid,
                  (case        when base_to ='ddd' then orderid        else '1'       end) taku
            FROM
                control_hdr
            ) hdr
        GROUP BY
            hdr.outstockdate,
            hdr.base_to,
            hdr.base_from,
            hdr.taku
) hdrbase
    
質問日時 2013-11-18 07:41:01
名前
匿名
回答内容

回答を評価する
(0ポイント)
丸々SQLの話だな。
SQL向けの掲示板に行こう。
回答日時 2013-11-18 12:02:34
回答内容を入力し、「確認」ボタンをクリックしてください。
ログインしていません。ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 ユーザIDをお持ちでない方は「ID登録」からユーザIDの登録を行ってください。
氏名 匿名
回答内容
 



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道