Click here to Skip to main content
15,886,137 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hy guys.

I've been messing with this query for about a hour trying to find the way to display a chosen date that has been added with some month (from another table) and then displays the smallest value based on their parents. Now, code speak more than word, here it is:
SQL
SELECT   l.ID_JALURPOHON "ID Jalur Pohon",
            l.ID_RUASJALAN 
         || ' - '
         || (SELECT   N.NAMA_PANJANG
               FROM   NAMA_JALAN N
              WHERE   L.ID_RUASJALAN = N.ID_NAMAJALAN) /*l.ID_RUASJALAN works fine here*/
            "Nama Jalan",
         (SELECT   da
            FROM   (  SELECT   ADD_MONTHS (D.TGL_PERABASAN, J.PERIODE_RABAS) da
                        FROM   ADETIL_POHON D, Jenis_POHON J
                       WHERE   d.ID_JENISPOHON = j.ID_JENISPOHON
                               AND d.ID_JALURPOHON = l.ID_JALURPOHON /*l.ID_JALURPOHON not recognized here*/
                    ORDER BY   da ASC)
           WHERE   ROWNUM <= 1)
            "Tanggal Perabasan"
  FROM   APOHON L

Any idea of what may be the cause? Or the workaround?
Posted
Updated 22-Sep-11 16:24pm
v4
Comments
Jörgen Andersson 24-Sep-11 13:26pm    
What's the actual error?
Firo Atrum Ventus 25-Sep-11 22:04pm    
ORA-00904: "L"."ID_JALURPOHON": invalid identifier

1 solution

I assume you're using Oracle 9i or earlier, because it can only reference a column from a table referred to in the parent statement. Not two levels up. (From version 10 and forward it's unlimited.
I would suggest you use a join instead of a subquery.

Like something similar to this

SQL
SELECT   l.ID_JALURPOHON "ID Jalur Pohon",
         l.ID_RUASJALAN
         || ' - '
         || (SELECT   N.NAMA_PANJANG
               FROM   NAMA_JALAN N
              WHERE   L.ID_RUASJALAN = N.ID_NAMAJALAN)"Nama Jalan",
         m.da "Tanggal Perabasan"
  FROM   APOHON L, (  SELECT   ADD_MONTHS (D.TGL_PERABASAN, J.PERIODE_RABAS) da,
                               d.ID_JALURPOHON 
                        FROM   ADETIL_POHON D, Jenis_POHON J
                       WHERE   d.ID_JENISPOHON = j.ID_JENISPOHON
                    ORDER BY   da ASC) M
  WHERE   ROWNUM <= 1 
    AND   m.ID_JALURPOHON = l.ID_JALURPOHON 
 
Share this answer
 
Comments
Firo Atrum Ventus 27-Sep-11 3:07am    
Thanks, it worked like a charm.
Jörgen Andersson 27-Sep-11 4:30am    
I'm happy to be able to help.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900