Solved

ORACLE SQL:  Error single group function

Posted on 2010-11-18
5
409 Views
Last Modified: 2012-06-27
Experts,

I am using Oracle 10G and I am getting this messagewhen I am run this function.
 Execute:
      [RESULT] = "NOCREPORTS"."TEST_NOC_KEY_INDICATOR_REPORT"

---------------------------------------------------------------------------------------------------

I usually works but I just added values for a column named ENDING_PLAN and the query that is
(SELECT COUNT(*) FROM ARADMIN.PLATFORM_EVENT WHERE UDF_CONVERT_UNIX_DATETIME(DATE_CREATED, 'US/Eastern') >= (TRUNC(SYSDATE) - INTERVAL '16' HOUR) AND UDF_CONVERT_UNIX_DATETIME(DATE_CREATED, 'US/Eastern') < (TRUNC(SYSDATE) - INTERVAL '8' HOUR) AND NOC_MANAGED = 0)

I am not sure how I should add this into the function.  Please see below  Thanks



INSERT INTO noc_key_indicator_values (field_id, field_value, report_id, report_date, show_date, KEY_INDICATOR, ENDING_PLAN)
   SELECT   'S8_1', COUNT (npe1.ticket_id), 'SO-DYLY-01', TRUNC (SYSDATE), TO_CHAR (SYSDATE - 1, 'DAY'), '  # BHN Platform Events Triaged & Dispatched <=15 Minutes of Engagement', (SELECT COUNT(*) FROM ARADMIN.PLATFORM_EVENT WHERE UDF_CONVERT_UNIX_DATETIME(DATE_CREATED, 'US/Eastern') >= (TRUNC(SYSDATE) - INTERVAL '24' HOUR) AND UDF_CONVERT_UNIX_DATETIME(DATE_CREATED, 'US/Eastern') < (TRUNC(SYSDATE) - INTERVAL '16' HOUR) AND NOC_MANAGED = 0)
     FROM   (SELECT   *
               FROM   nocreports.tts_tkt_assignment_history
              WHERE   tah_request_id IN
                            (  SELECT   MIN (tah_request_id)
                                 FROM   nocreports.tts_tkt_assignment_history
                                WHERE       tah_assign_start_date >= (TRUNC (SYSDATE) - INTERVAL '24' HOUR)
                                        AND tah_assign_start_date < (TRUNC (SYSDATE) - INTERVAL '16' HOUR)
                                        AND tah_current_combined_group = 'National-Surveillance'
                                        AND tah_form_name = 'Platform Event'
                             GROUP BY   tah_ticket_id)) ia1,
            (SELECT   ticket_id
               FROM   aradmin.platform_event
              WHERE       udf_convert_unix_datetime (date_created, 'US/Eastern') >= (TRUNC (SYSDATE) - INTERVAL '24' HOUR)
                      AND udf_convert_unix_datetime (date_created, 'US/Eastern') < (TRUNC (SYSDATE) - INTERVAL '16' HOUR)
                      AND noc_managed = 0) npe1
    WHERE   npe1.ticket_id = ia1.tah_ticket_id AND tah_assignment_seconds <= 900;

Open in new window

0
Comment
Question by:Maliki Hassani
  • 3
  • 2
5 Comments
 
LVL 74

Expert Comment

by:sdstuber
ID: 34166879
you have used an aggregate (COUNT)  but you haven't specified a group by clause

every non-aggregate /non-constant column must be in a group by
0
 

Author Comment

by:Maliki Hassani
ID: 34166929
Sdstuber:  Do you know of a way to rearrange this function so it can work?
0
 
LVL 74

Accepted Solution

by:
sdstuber earned 500 total points
ID: 34167007
try this...


INSERT INTO noc_key_indicator_values(field_id,
                                     field_value,
                                     report_id,
                                     report_date,
                                     show_date,
                                     key_indicator,
                                     ending_plan
                                    )
    SELECT 'S8_1',
           cnt,
           'SO-DYLY-01',
           TRUNC(SYSDATE),
           TO_CHAR(SYSDATE - 1, 'DAY'),
           '  # BHN Platform Events Triaged & Dispatched <=15 Minutes of Engagement',
           (SELECT COUNT(*)
              FROM aradmin.platform_event
             WHERE udf_convert_unix_datetime(date_created, 'US/Eastern') >=
                       (TRUNC(SYSDATE) - INTERVAL '24' HOUR)
                   AND udf_convert_unix_datetime(date_created, 'US/Eastern') <
                           (TRUNC(SYSDATE) - INTERVAL '16' HOUR)
                   AND noc_managed = 0)
      FROM (SELECT COUNT(npe1.ticket_id) cnt
              FROM (SELECT *
                      FROM nocreports.tts_tkt_assignment_history
                     WHERE tah_request_id IN
                               (SELECT   MIN(tah_request_id)
                                    FROM nocreports.tts_tkt_assignment_history
                                   WHERE tah_assign_start_date >=
                                             (TRUNC(SYSDATE) - INTERVAL '24' HOUR)
                                         AND tah_assign_start_date <
                                                 (TRUNC(SYSDATE)
                                                  - INTERVAL '16' HOUR)
                                         AND tah_current_combined_group =
                                                 'National-Surveillance'
                                         AND tah_form_name = 'Platform Event'
                                GROUP BY tah_ticket_id)) ia1,
                   (SELECT ticket_id
                      FROM aradmin.platform_event
                     WHERE udf_convert_unix_datetime(date_created,
                                                     'US/Eastern'
                                                    ) >=
                               (TRUNC(SYSDATE) - INTERVAL '24' HOUR)
                           AND udf_convert_unix_datetime(date_created,
                                                         'US/Eastern'
                                                        ) <
                                   (TRUNC(SYSDATE) - INTERVAL '16' HOUR)
                           AND noc_managed = 0) npe1
             WHERE npe1.ticket_id = ia1.tah_ticket_id
                   AND tah_assignment_seconds <= 900);
0
 
LVL 74

Expert Comment

by:sdstuber
ID: 34167012
I moved the aggregate out of the same scope as the subquery
0
 

Author Comment

by:Maliki Hassani
ID: 34167216
Great Stuff..  You are so smart!!
0

Featured Post

How our DevOps Teams Maximize Uptime

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us. Read the use case whitepaper.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Why use this lambda? 12 60
MS SQL GROUP BY 6 72
SQL Syntax 6 27
MS SQL Server Management Studio R2 4 26
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
In this post we will learn different types of Android Layout and some basics of an Android App.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question