如何将下面二个SQL合并?

you_tube 2010-03-10 01:59:46
语句一:
--取分段起始时间
SELECT TJRQ
INTO START_DATE
FROM (SELECT TT1.TJRQ, ROWNUM ROWNO
FROM (

SELECT T.TJRQ TJRQ
FROM WORK_INFO_MAIN M, WORK_INFO_CHILD T, DJ_NSRXX D
WHERE M.SERIAL_NO = T.SERIAL_NO
AND T.NSRSBH = D.NSRSBH
AND T.YXZT_DM = '3'
AND (T.LSSJ = 0 OR T.LSSJ IS NULL)
AND D.CGS_FLAG = 1
AND M.CZRY_DM = C_USER.USER_ID
ORDER BY TJRQ

) TT1)
WHERE ROWNO = START_NUM;

语句二:
---取分段结束时间
SELECT TJRQ
INTO END_DATE
FROM (SELECT TT1.TJRQ, ROWNUM ROWNO
FROM (

SELECT T.TJRQ TJRQ
FROM WORK_INFO_MAIN M, WORK_INFO_CHILD T, DJ_NSRXX D
WHERE M.SERIAL_NO = T.SERIAL_NO
AND T.NSRSBH = D.NSRSBH
AND T.YXZT_DM = '3'
AND (T.LSSJ = 0 OR T.LSSJ IS NULL)
AND D.CGS_FLAG = 1
AND M.CZRY_DM = C_USER.USER_ID
ORDER BY TJRQ

) TT1)
WHERE ROWNO = END_NUM;
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangren 2010-03-10
  • 打赏
  • 举报
回复
WITH NEW_WORK AS
(SELECT TT1.TJRQ, ROWNUM ROWNO
FROM (SELECT T.TJRQ TJRQ
FROM WORK_INFO_MAIN M, WORK_INFO_CHILD T, DJ_NSRXX D
WHERE M.SERIAL_NO = T.SERIAL_NO AND
T.NSRSBH = D.NSRSBH AND
T.YXZT_DM = '3' AND
(T.LSSJ = 0 OR T.LSSJ IS NULL) AND
D.CGS_FLAG = 1 AND
M.CZRY_DM = C_USER.USER_ID
ORDER BY TJRQ) TT1)
SELECT a.TJRQ, b.TJRQ
INTO START_DATE, END_DATE
FROM NEW_WORK a, NEW_WORK b
WHERE a.ROWNO = START_NUM AND
b.ROWNO = END_NUM)
you_tube 2010-03-10
  • 打赏
  • 举报
回复
引用 5 楼 tangren 的回复:
START_NUM 与 END_NUM是什么关系?
不同的常量
tangren 2010-03-10
  • 打赏
  • 举报
回复
START_NUM 与 END_NUM是什么关系?
you_tube 2010-03-10
  • 打赏
  • 举报
回复
不对哇,,,,,,,,,,,,,,,
YY_MM_DD 2010-03-10
  • 打赏
  • 举报
回复
SELECT TJRQ
INTO START_DATE
FROM (SELECT TT1.TJRQ, ROWNUM ROWNO
FROM (

SELECT T.TJRQ TJRQ
FROM WORK_INFO_MAIN M, WORK_INFO_CHILD T, DJ_NSRXX D
WHERE M.SERIAL_NO = T.SERIAL_NO
AND T.NSRSBH = D.NSRSBH
AND T.YXZT_DM = '3'
AND (T.LSSJ = 0 OR T.LSSJ IS NULL)
AND D.CGS_FLAG = 1
AND M.CZRY_DM = C_USER.USER_ID
ORDER BY TJRQ

) TT1)
WHERE ROWNO = START_NUM or ROWNO = END_NUM
you_tube 2010-03-10
  • 打赏
  • 举报
回复
不一样
上面的是
WHERE ROWNO = START_NUM;

下面的条件是
WHERE ROWNO = END_NUM;
tangren 2010-03-10
  • 打赏
  • 举报
回复
重复了?
SELECT MIN(NSRSBH), MAX(NSRSBH)
INTO START_WSPZH, END_WSPZH
FROM (SELECT NSRSBH
FROM (SELECT TT1.NSRSBH, ROWNUM ROWNO
FROM (SELECT T.NSRSBH
FROM WORK_INFO_MAIN M, WORK_INFO_CHILD T, DJ_NSRXX D
WHERE M.SERIAL_NO = T.SERIAL_NO AND
T.NSRSBH = D.NSRSBH AND
T.YXZT_DM = '3' AND
(T.LSSJ = 0 OR T.LSSJ IS NULL) AND
D.CGS_FLAG = 1 AND
M.CZRY_DM = C_USER.USER_ID
ORDER BY TJRQ
) TT1)
WHERE ROWNO BETWEEN START_NUM AND END_NUM);

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧