Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Difficult SQL Please Help
In <kqVr4.46$RE2.327756_at_dca1-nnrp1.news.digex.net> "Sean Harasin"
<sharasin_at_mbakercorp.com> writes:
>The Statement Below Works Just Fine With The 3.92 Hard Coded In, However I
>Need To Replace The 3.92 With The Statement Fragment (also below). When I
>Add The Statement Fragment I Get The Error: ORA-00937: not a single-group
>group function
>If I remove the Sum() From the Fragment, The Query Will Run, But I Get
>Incorrect Results.
>Can Anybody Point Out What I Need To Do?
My first thought would be to put the "fragment" into a sub-query in the FROM clause of the main query, group the "fragment" by instrument_name, loc_code, reading_date and reading_time within the sub-query, call the sub-query R4, and join it to R1 by the grouped columns. This may not be a very elegant solution, and I have no way of testing whether it even works, but here's the query I would try first:
SELECT R1.READING_DATE AS READ_DATE, MIN (R1.reading_time) AS READ_TIME, SUM (DECODE (R1.INSTRUMENT_NAME, 'P001', (R4.FRAGMENT / ((DECODE (R1.HEADWATER - R1.TAILWATER, 0, NULL, (R1.HEADWATER - R1.TAILWATER) ) ) / 100)))) AS "P001 DELTA_HEAD", R1.LOC_CODE FROM PIEZ.P_READINGS R1, (SELECT R3.INSTRUMENT_NAME, R3.LOC_CODE, R3.READING_DATE, R3.READING_TIME, SUM (DECODE (R3.INSTRUMENT_NAME, 'P002', R3.WATER_SURFACE, 0) - DECODE (R3.INSTRUMENT_NAME, 'P001', R3.TAILWATER, 0)) AS FRAGMENT FROM PIEZ.P_READINGS R3 GROUP BY R3.INSTRUMENT_NAME, R3.LOC_CODE, R3.READING_DATE, R3.READING_TIME) R4
(SELECT MIN (R2.READING_TIME) FROM PIEZ.P_READINGS R2 WHERE R2.LOC_CODE = R1.LOC_CODE AND R2.INSTRUMENT_NAME = R1.INSTRUMENT_NAME AND TRUNC (R2.READING_DATE, 'DD') = TRUNC (R1.READING_DATE, 'DD')) AND R4.INSTRUMENT_NAME = R1.INSTRUMENT_NAME AND R4.LOC_CODE = R1.LOC_CODE
GROUP BY R1.READING_DATE, R1.LOC_CODE ORDER BY R1.READING_DATE
Hope that helps - if not, maybe you can get some other ideas from it.
-Pasi
--
Pasi Jouhikainen 24h Phone: +358-40-7310859 jouhikai_at_cc.helsinki.fi 24h Fax: +358-42-7310859 Address: Ylisrinne 1 As 33 / 02210 Espoo / Finland or: 351 2nd Ave Pl, #4 / Coralville, IA 52241 / USAReceived on Sun Feb 20 2000 - 16:42:09 CST
![]() |
![]() |