Thread: SQL Question
View Single Post

   
  #5 (permalink)  
Old 04-08-2008, 06:26 AM
ford_desperado@yahoo.com
 
Posts: n/a
Default Re: SQL Question

CREATE TABLE SCHEDULE(SITE_ID NUMBER, TYPE CHAR(1));
INSERT INTO SCHEDULE VALUES(101, 'A');
INSERT INTO SCHEDULE VALUES(101, 'B');
INSERT INTO SCHEDULE VALUES(101, 'B');
INSERT INTO SCHEDULE VALUES(102, 'B');
INSERT INTO SCHEDULE VALUES(102, 'C');
CREATE TABLE OBJECTS(OBJECT_ID NUMBER, SITE_ID NUMBER);
INSERT INTO OBJECTS VALUES(1, 101);
INSERT INTO OBJECTS VALUES(3, 101);
INSERT INTO OBJECTS VALUES(4, 101);
INSERT INTO OBJECTS VALUES(2, 102);
INSERT INTO OBJECTS VALUES(5, 102);

SELECT OBJECTS_TE.OBJECT_ID, SCHEDULE_TE.SITE_ID, SCHEDULE_TE.TYPE
FROM
(SELECT SITE_ID, TYPE, ROW_NUMBER() OVER(PARTITION BY SITE_ID ORDER BY
TYPE) RN FROM SCHEDULE) SCHEDULE_TE
JOIN
(SELECT OBJECT_ID, SITE_ID, ROW_NUMBER() OVER(PARTITION BY SITE_ID
ORDER BY OBJECT_ID) RN FROM OBJECTS) OBJECTS_TE
ON SCHEDULE_TE.SITE_ID = OBJECTS_TE.SITE_ID
AND SCHEDULE_TE.RN = OBJECTS_TE.RN;

OBJECT_ID SITE_ID TYPE
---------- ---------- ----
1 101 A
3 101 B
4 101 B
2 102 B
5 102 C
5 rows selected

DROP TABLE SCHEDULE;
DROP TABLE OBJECTS;

Reply With Quote