One Query

From: Mtek <mtek_at_mtekusa.com>
Date: Mon, 15 Sep 2008 06:17:26 -0700 (PDT)
Message-ID: <fcf4a368-7a3d-401c-848d-617268e7c091@f63g2000hsf.googlegroups.com>


Hi,

I saw a similar post by someone else but there was no replies.

I need to write a query that will return columns in the same result row. The trick is that these columns must be decoded, and I think that the decode statement must have a fallback if no items match. This will not work if I want to decode each column with a single value and display it in the same row.....

Like this:

// DATA IN TABLE
SQL> select * from test;

C1                 C2 C3
---------- ---------- ---------
REC1               50 01-JAN-07
REC2               50 01-JAN-07
REC1              100 01-MAY-07
REC2               10 01-JUN-07

SELECT TO_CHAR(c3,'MM/DD/YYYY') a, DECODE(c1, 'REC1','Record 1') b, SUM(C2), DECODE(c1,'REC2','Record 2') c, SUM(C2) FROM test
GROUP BY c3, c1;

A B SUM(C2) C SUM(C2)
---------- -------- ---------- -------- ----------

01/01/2007 Record 1         50                  50
01/01/2007                  50 Record 2         50
05/01/2007 Record 1        100                 100
06/01/2007                  10 Record 2         10


This is not even close to what I want. What I am looking for is a display like this:

A B SUM(C2) C SUM(C2)
---------- -------- ---------- -------- ----------

01/01/2007 Record1      50     Record2     50
05/01/2007 Record1     100
06/01/2007 Record2      10

The key here is that I want to put things in one row and group them and sum the proper columns.

I do not think this can be done without pl/sql. Received on Mon Sep 15 2008 - 08:17:26 CDT

Original text of this message