Skip to Content
Oracle SQL*Plus: The Definitive Guide, 2nd Edition
book

Oracle SQL*Plus: The Definitive Guide, 2nd Edition

by Jonathan Gennick
November 2004
Intermediate to advanced
584 pages
15h 29m
English
O'Reilly Media, Inc.
Content preview from Oracle SQL*Plus: The Definitive Guide, 2nd Edition

Summary Reports

Sometimes you are interested only in summarized information. Maybe you only need to know the total hours each employee has spent on each project, and you don't care about the detail of each day's charges. Whenever that's the case, you should write your SQL query to return summarized data from Oracle.

Here is the query used in the master/detail report shown in Example 7-4:

SELECT p.project_id,
       p.project_name,
       TO_CHAR(ph.time_log_date,'dd-Mon-yyyy') time_log_date,
       ph.hours_logged,
       ph.dollars_charged,
       e.employee_id,
       e.employee_name
  FROM employee e INNER JOIN project_hours ph
       ON e.employee_id = ph.employee_id
       INNER JOIN project p
       ON p.project_id = ph.project_id
UNION ALL
SELECT NULL, NULL, NULL, NULL, NULL, NULL, 'Grand Totals'
FROM dual
ORDER BY employee_id NULLS LAST, project_id, time_log_date;

This query brings down all the detail information from the project_hours table, and is fine if you need that level of detail. However, if all you are interested in are the totals by employee and project, you can use the following query instead:

SELECT p.project_id, p.project_name, TO_CHAR(MAX(ph.time_log_date),'dd-Mon-yyyy') time_log_date, SUM(ph.hours_logged) hours_logged, SUM(ph.dollars_charged) dollars_charged, e.employee_id, e.employee_name FROM employee e INNER JOIN project_hours ph ON e.employee_id = ph.employee_id INNER JOIN project p ON p.project_id = ph.project_id GROUP BY e.employee_id, e.employee_name, p.project_id, p.project_name UNION ALL SELECT NULL, NULL, NULL, NULL, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Oracle SQL*Plus: The Definitive Guide

Oracle SQL*Plus: The Definitive Guide

Jonathan Gennick
Oracle PL/SQL Programming, Third Edition

Oracle PL/SQL Programming, Third Edition

Steven Feuerstein, Bill Pribyl
Oracle PL/SQL Programming, 5th Edition

Oracle PL/SQL Programming, 5th Edition

Steven Feuerstein, Bill Pribyl
Oracle PL/SQL Programming, 6th Edition

Oracle PL/SQL Programming, 6th Edition

Steven Feuerstein, Bill Pribyl

Publisher Resources

ISBN: 0596007469Errata Page