SELECT
2 T.DENNO
3 ,T.CATALOGNAME -- カタログ名称
4 ,T.TEKIYOFYMD -- お届け日
5 ,GET_TENPONAME( ' 0001 ' ,T.TENPOCD, 0 ) AS TENPONAME -- 事業所名
6 ,T.HAISOSYACD -- 担当コード
7 ,T.YOUBIKB -- 曜日
8 ,T.AMPMKB -- 便
9 ,T.RENBAN -- 配達順
10 ,T.HANCD -- 班コード
11 ,GET_HANNAME( ' 0001 ' ,T.HANCD) AS HANNAME -- 班名称
12 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 1 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME1
13 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 2 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME2
14 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 3 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME3
15 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 4 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME4
16 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 5 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME5
17 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 0 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME6
18 , CASE WHEN ROW_COUNT - 6 <= 0 THEN 0 ELSE ROW_COUNT - 6 END AS SONOTA -- その他何名
19 FROM
20 (
21 SELECT
22 A.DENNO
23 ,B.CATALOGNAME -- カタログ名称
24 ,B.TEKIYOFYMD -- お届け日
25 ,A.TENPOCD -- 事業所
26 ,A.HAISOSYACD -- 担当コード
27 ,A.YOUBIKB -- 曜日
28 ,A.AMPMKB -- 便
29 ,A.RENBAN -- 配達順
30 ,A.HANCD -- 班コード
31 ,C.SIMEICD
32 ,ROW_NUMBER() OVER (PARTITION BY A.DENNO,A.HANCD ORDER BY C.SIMEICD) ROW_NUM
33 , COUNT ( * ) OVER (PARTITION BY A.DENNO,A.HANCD) ROW_COUNT
34 ,CEIL(ROW_NUMBER() OVER (PARTITION BY A.DENNO,A.HANCD ORDER BY C.SIMEICD) / 6 ) ROW_NUM6
35 ,GET_KUMIAIINNAME( ' 0001 ' ,C.SIMEICD, 1 )
36 FROM
37 TRAN1000 A
38 ,MAST2080 B
39 ,(
40 SELECT
41 E.SIMEICD
42 ,E.HANCD
43 FROM
44 MAST1080 D
45 ,MAST1090 E
46 WHERE
47 D.TANKYOCD = E.TANKYOCD
48 AND D.HANCD = E.HANCD
49 AND D.TANKYOCD = ' 0001 '
50 AND E.TANKYOCD = D.TANKYOCD
51 AND D.DELFLG = 0
52 AND E.DELFLG = 0
53 ORDER BY
54 E.HANCD
55 ,E.SIMEICD
56 )C
57 WHERE
58 A.TANKYOCD = B.TANKYOCD( + ) -- 単協コード
59 AND A.HANBAIKB = B.HANBAIKB( + ) -- 供給区分
60 AND A.CATALOGCD = B.CATALOGCD( + ) -- カタログコード
61 AND A.HANCD = C.HANCD( + )
62 AND A.DENGYO = 999 -- 伝票行
63 AND A.HANBAIKB = ' 04 ' -- 供給区分
64 AND A.HACHUFLG > 0 -- 発注フラグ
65 AND A.SEIKYUFLG = 0 -- 請求フラグ
66 AND A.SHIMEKIRIFLG = 1 -- 締切フラグ
67 AND A.DELFLG = ' 0 '
68 AND B.DELFLG( + ) = ' 0 '
69 )T
70 WHERE
71 T.ROW_NUM6 = 1
72 GROUP BY T.DENNO
73 ,T.CATALOGNAME
74 ,T.TEKIYOFYMD
75 ,T.HAISOSYACD
76 ,T.TENPOCD
77 ,T.YOUBIKB
78 ,T.AMPMKB
79 ,T.RENBAN
80 ,T.HANCD
81 ,T.ROW_COUNT
82 ,ROW_NUM6
2 T.DENNO
3 ,T.CATALOGNAME -- カタログ名称
4 ,T.TEKIYOFYMD -- お届け日
5 ,GET_TENPONAME( ' 0001 ' ,T.TENPOCD, 0 ) AS TENPONAME -- 事業所名
6 ,T.HAISOSYACD -- 担当コード
7 ,T.YOUBIKB -- 曜日
8 ,T.AMPMKB -- 便
9 ,T.RENBAN -- 配達順
10 ,T.HANCD -- 班コード
11 ,GET_HANNAME( ' 0001 ' ,T.HANCD) AS HANNAME -- 班名称
12 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 1 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME1
13 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 2 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME2
14 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 3 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME3
15 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 4 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME4
16 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 5 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME5
17 , MAX ( CASE WHEN MOD(T.ROW_NUM, 6 ) = 0 THEN GET_KUMIAIINNAME( ' 0001 ' ,T.SIMEICD, 1 ) || ' ' || ' 様 ' ELSE '' END ) AS KUMIAIINNAME6
18 , CASE WHEN ROW_COUNT - 6 <= 0 THEN 0 ELSE ROW_COUNT - 6 END AS SONOTA -- その他何名
19 FROM
20 (
21 SELECT
22 A.DENNO
23 ,B.CATALOGNAME -- カタログ名称
24 ,B.TEKIYOFYMD -- お届け日
25 ,A.TENPOCD -- 事業所
26 ,A.HAISOSYACD -- 担当コード
27 ,A.YOUBIKB -- 曜日
28 ,A.AMPMKB -- 便
29 ,A.RENBAN -- 配達順
30 ,A.HANCD -- 班コード
31 ,C.SIMEICD
32 ,ROW_NUMBER() OVER (PARTITION BY A.DENNO,A.HANCD ORDER BY C.SIMEICD) ROW_NUM
33 , COUNT ( * ) OVER (PARTITION BY A.DENNO,A.HANCD) ROW_COUNT
34 ,CEIL(ROW_NUMBER() OVER (PARTITION BY A.DENNO,A.HANCD ORDER BY C.SIMEICD) / 6 ) ROW_NUM6
35 ,GET_KUMIAIINNAME( ' 0001 ' ,C.SIMEICD, 1 )
36 FROM
37 TRAN1000 A
38 ,MAST2080 B
39 ,(
40 SELECT
41 E.SIMEICD
42 ,E.HANCD
43 FROM
44 MAST1080 D
45 ,MAST1090 E
46 WHERE
47 D.TANKYOCD = E.TANKYOCD
48 AND D.HANCD = E.HANCD
49 AND D.TANKYOCD = ' 0001 '
50 AND E.TANKYOCD = D.TANKYOCD
51 AND D.DELFLG = 0
52 AND E.DELFLG = 0
53 ORDER BY
54 E.HANCD
55 ,E.SIMEICD
56 )C
57 WHERE
58 A.TANKYOCD = B.TANKYOCD( + ) -- 単協コード
59 AND A.HANBAIKB = B.HANBAIKB( + ) -- 供給区分
60 AND A.CATALOGCD = B.CATALOGCD( + ) -- カタログコード
61 AND A.HANCD = C.HANCD( + )
62 AND A.DENGYO = 999 -- 伝票行
63 AND A.HANBAIKB = ' 04 ' -- 供給区分
64 AND A.HACHUFLG > 0 -- 発注フラグ
65 AND A.SEIKYUFLG = 0 -- 請求フラグ
66 AND A.SHIMEKIRIFLG = 1 -- 締切フラグ
67 AND A.DELFLG = ' 0 '
68 AND B.DELFLG( + ) = ' 0 '
69 )T
70 WHERE
71 T.ROW_NUM6 = 1
72 GROUP BY T.DENNO
73 ,T.CATALOGNAME
74 ,T.TEKIYOFYMD
75 ,T.HAISOSYACD
76 ,T.TENPOCD
77 ,T.YOUBIKB
78 ,T.AMPMKB
79 ,T.RENBAN
80 ,T.HANCD
81 ,T.ROW_COUNT
82 ,ROW_NUM6
转载于:https://blog.51cto.com/77857/164249