Workorderstep2表结构。
NAME ISNULL TYPE
WORKORDER_GUID Y CHAR(36)
WORKORDERSTEP_GUID N CHAR(36)
OLDHANDLEBY_ID Y CHAR(6)
OLDHANDLEGROUP_ID Y CHAR(6)
HANDLEBY_ID Y CHAR(6)
HANDLEGROUP_ID Y CHAR(6)
WORKORDERSTEPSTATUS Y CHAR(6)
COMMENTS Y VARCHAR2(1024)
handleby_id Y VARCHAR2(6)
MODIFIEDDATE Y DATE(7)
WORKORDERSTEPID Y CHAR(6)
STEPEXPIRED Y DATE(7)workorder2表结构:
NAME ISNULL TYPE
WORKORDER_GUID N CHAR(36)
CURSTEPCOMMENTS Y VARCHAR2(3000)
CREATEDBY Y CHAR(6)
CREATEDDATE Y DATE(7)
MODIFIEDBY Y CHAR(6)
MODIFIEDDATE Y DATE(7)
其中workorder2和workorderstep2的两个表的关系是一对多的关系,即workorder2.workorder_guid在workorderstep2表的workorder_guid可以出现多次。但是workorderstep2表的workorderstep_guid是唯一的。而且workorder2表的workorder_guid也是唯一的。现在想编写一条SQL语句:即想得到主表的workorder_guid在workorderstep2表的最近一次修改时间的COMMENTS字段的值和主表的handleby_id,CURSTEPCOMMENTS 的字段的值?请问这样的一对多的SQL语句该怎么写?
NAME ISNULL TYPE
WORKORDER_GUID Y CHAR(36)
WORKORDERSTEP_GUID N CHAR(36)
OLDHANDLEBY_ID Y CHAR(6)
OLDHANDLEGROUP_ID Y CHAR(6)
HANDLEBY_ID Y CHAR(6)
HANDLEGROUP_ID Y CHAR(6)
WORKORDERSTEPSTATUS Y CHAR(6)
COMMENTS Y VARCHAR2(1024)
handleby_id Y VARCHAR2(6)
MODIFIEDDATE Y DATE(7)
WORKORDERSTEPID Y CHAR(6)
STEPEXPIRED Y DATE(7)workorder2表结构:
NAME ISNULL TYPE
WORKORDER_GUID N CHAR(36)
CURSTEPCOMMENTS Y VARCHAR2(3000)
CREATEDBY Y CHAR(6)
CREATEDDATE Y DATE(7)
MODIFIEDBY Y CHAR(6)
MODIFIEDDATE Y DATE(7)
其中workorder2和workorderstep2的两个表的关系是一对多的关系,即workorder2.workorder_guid在workorderstep2表的workorder_guid可以出现多次。但是workorderstep2表的workorderstep_guid是唯一的。而且workorder2表的workorder_guid也是唯一的。现在想编写一条SQL语句:即想得到主表的workorder_guid在workorderstep2表的最近一次修改时间的COMMENTS字段的值和主表的handleby_id,CURSTEPCOMMENTS 的字段的值?请问这样的一对多的SQL语句该怎么写?
max(b.COMMENTS) keep(dense_rank last order by MODIFIEDDATE) comments
from workorder2 a, Workorderstep2 b
where a.WORKORDER_GUID=b.WORKORDER_GUID
group by a.handleby_id,a.CURSTEPCOMMENTS
FROM workorder2 A,
Workorderstep2 B,
(SELECT workorder_guid,MAX(MODIFIEDDATE) MODIFIEDDATE
FROM Workorderstep2 GROUP BY workorder_guid) C
WHERE A.workorder_guid=B.workorder_guid AND A.workorder_guid=C.workorder_guid
AND B.MODIFIEDDATE=C.MODIFIEDDATE