On May 9, 6:05 am, Joel <johow...@gmail.com> wrote:
> The query you provided doesn't work at all (errors) and further the
> column names in it don't match with the tables you specified... so I
> certainly hope this isn't a homework problem you are cheating on!  If
> it's not, please try the below:
>
> CREATE TABLE a AS
> SELECT 1 scriptid, 'ABC' title FROM DUAL
> UNION ALL
> SELECT 2, 'XYZ' FROM DUAL;
>
> CREATE TABLE b AS
> SELECT 1 scriptid, 5 ot_id, TO_DATE('01-03-11','DD-MM-RR') sub_dt FROM
> DUAL
> UNION ALL
> SELECT 1, 6, TO_DATE('01-05-11','DD-MM-RR') FROM DUAL
> UNION ALL
> SELECT 2, 7, TO_DATE('13-04-11','DD-MM-RR') FROM DUAL;
>
> CREATE TABLE c AS
> SELECT 5 ot_id, 'Mr. A' contactname FROM DUAL
> UNION ALL
> SELECT 5, 'Mr. X' FROM DUAL
> UNION ALL
> SELECT 6, 'Mr. C' FROM DUAL
> UNION ALL
> SELECT 7, 'Mr. B' FROM DUAL;
>
> CREATE TABLE d AS
> SELECT 5 ot_id, 'Mr. M' sub_by FROM DUAL
> UNION ALL
> SELECT 5, 'Mr. N' FROM DUAL
> UNION ALL
> SELECT 6, 'Mr. O' FROM DUAL
> UNION ALL
> SELECT 7, 'Mr. P' FROM DUAL;
>
> SELECT *
>   FROM a;
> SELECT *
>   FROM b;
> SELECT *
>   FROM c;
> SELECT *
>   FROM d;
>
> SELECT a.scriptid, a.title, b.ot_id, b.sub_dt, c.contactname, e.sub_by
>   FROM a
>   JOIN b ON a.scriptid = b.scriptid
>   JOIN c ON b.ot_id = c.ot_id
>   JOIN (  SELECT ot_id, listagg(sub_by, ' / ') WITHIN GROUP (ORDER BY
> 1) AS sub_by  /*listagg is an 11g built-in function*/
>             FROM d
>         GROUP BY ot_id) e
>          ON c.ot_id = e.ot_id
> order by A.scriptid,B.sub_dt desc,B.ot_id desc;
>
> drop table a purge;
> drop table b purge;
> drop table c purge;
> drop table d purge;
>
> On May 8, 1:35 pm, chintan salvi <chintu4...@gmail.com> wrote:
>
>
>
> > Hi frnds plz help with the query. I have 4 tables as below
> > Table A ScriptId(PK)
> > ScriptId | Title|
> > -------------------
> > 1 ABC
> > 2 XYZ
> > Table B ScriptId(FK), OT_ID(PK)
> > ScriptId | OT_ID| SUB_DT
> > ---------------------------------
> > 1 5 01-03-11
> > 1 6 01-05-11
> > 2 7 13-04-11
> > Table C OT_ID(FK)
> > OT_ID| ContactName
> > ---------------------------------
> > 5 Mr. A
> > 5 Mr. X
> > 6 Mr. C
> > 7 Mr. B
> > Table D OT_ID(FK)
> > OT_ID| Sub_By
> > ---------------------------------
> > 5 Mr. M
> > 5 Mr. N
> > 6 Mr. O
> > 7 Mr. P
> > Now the final result should be like as below here the data from table D
> > should come as comma separated based on OT_ID
> > ScriptId | Title| OT_ID| SUB_DT | ContactName | Sub_By
> > ---------------------------------------------------------------------------­------
> >     1       ABC   5        01-03-11     Mr. A            Mr. M / Mr. N
> >     1       ABC   5        01-03-11     Mr. X            Mr. M / Mr. N
> >     1       ABC   6        01-05-11     Mr. C            Mr. O
> >     2       XYZ    7        13-04-11     Mr. B            Mr. P
> > Now I am not able to get the data under column Sub_By in the above result. I
> > am trying to do correlation please correct me where I am going wrong.
> > I am using the below query
> > ---------------
> > Select A.script_id,A.title,B.outgoing_note_id,B
> > .sub_date,C.contact_name,
> > (
> > SELECT SUBSTR (SYS_CONNECT_BY_PATH (USER_ID , ' / '), 4) csv
> > FROM
> > (SELECT SUB_BY , ROW_NUMBER () OVER (ORDER BY USER_ID ) rn,COUNT (*) OVER ()
> > cnt
> > FROM D where B.outgoing_note_id=D.outgoing_note_id
> > )
> > WHERE rn = cnt START WITH rn = 1 CONNECT BY rn = PRIOR rn + 1
> > ) as "SUB_BY",
> > From B,C,A
> > Where
> > B.outgoing_note_id = C.outgoing_note_id and
> > A.script_id = B.script_id and
> > order by A.script_id,B.sub_date desc,B.outgoing_note_id desc
> > --------------
> > /*The problem I am facing is at the below line
> > where B.outgoing_note_id=D.outgoing_note_id
> > */ Plz correct me.- Hide quoted text -
>
> - Show quoted text -

My guess is that this is homework and he's wanting someone else to do
it.


David Fitzjarrell

-- 
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to Oracle-PLSQL@googlegroups.com
To unsubscribe from this group, send email to
oracle-plsql-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en

Reply via email to