Download presentation
Published byIsaac Ryan Modified over 10 years ago
1
Chris A. McManigal Camden County Schools Kingsland, GA
An Intro to Writing SQL Queries & Using the sqlReports Customization for PowerSchool Chris A. McManigal Camden County Schools Kingsland, GA
2
GaETC App
3
Session Evaluation
4
Vendors Please make sure to visit the Vendors Room in Kenyan ½
Vendors will be here all day Tuesday
5
Overview Basic database architecture SQL Query Tools
SQL definitions and structure SQL functions What are sqlReports? Downloading/Installing sqlReports Creating an sqlReport Importing/Exporting sqlReports Q & A
6
Database architecture
7
Database table FIELDS (COLUMNS) ID Last_name First_name Gender
Ethnicity Grade_Level 1 Smith John M W 2 Brown Jim B 3 Jones Sue F H 4 Betty A RECORDS (ROWS)
8
PowerSchool Tables/Guides
Data dictionary contains all tables and fields within each table (Data Dictionary Tables for PowerSchool 7.x) Custom fields API guide provides functions to quickly access various tables’ custom fields (PS_CUSTOMFIELDS API Guide for PowerSchool 7.x)
9
SQL Query Tools Oracle comes with SQL *Plus Many GUI/IDE query tools
Command-line interface Cannot edit and resubmit; must retype Mainly used for scripted queries Many GUI/IDE query tools Show database layout (tables, views, columns, etc.) Color coding of keywords and formatting for easier readability Editing for trial-and-error querying Display results on same page Saving of SQL queries Exporting of results in various formats (.xls, .txt, .xml, etc.) Examples: Oracle SQL Developer, RazorSQL, Advanced Query Tool, Aqua Data Studio
10
SQL Developer Download from oracle.com Database connection
Must register Must have Java Development Kit installed SQL Developer comes with or without JDK Database connection Need DB server IP address Need password for one of the PS users (ps, psnavigator, psdataminer) No need to create separate ODBC connection
11
What is SQL?? Structured Query Language
Standard language structure used to access and manipulate relational databases Many different “flavors” depending on type of database; Oracle uses PL/SQL
12
Parts of the SQL query SELECT statement FROM clause WHERE clause
Declares the fields to be returned by the query ‘*’ returns all fields FROM clause Defines the table being queried Can contain JOIN clauses to query multiple tables WHERE clause Provides constraints on the records to be returned GROUP BY clause Eliminates duplication and provides for using aggregate functions HAVING clause Provides constraints on items in a GROUP BY clause, including aggregate functions ORDER BY clause Sorts the records that are returned
13
Comparison Operators Operator Description = Equality test <>
Inequality test > Greater than test < Less than test >= Greater than or equal to test <= Less than or equal to test IN “Equivalent to any member”test BETWEEN Inclusive range test LIKE Character pattern-matching test IS NULL Null (empty) test
14
Logical Operators Operator Description AND
All constraints must be TRUE OR At least one of the constraints must be TRUE NOT The constraint must be FALSE
15
SELECT & FROM SELECT * FROM students
SELECT schoolid, student_number, grade_level, gender, ethnicity FROM students SELECT course_number, section_number FROM cc
16
DISTINCT Selects distinct rows from a table SELECT DISTINCT last_name
FROM students SELECT DISTINCT course_number, course_name FROM storedgrades
17
WHERE SELECT schoolid, student_number, grade_level, gender, ethnicity FROM students WHERE schoolid = 100 WHERE schoolid = 100 AND gender = ‘F’
18
WHERE (cont.) SELECT schoolid, student_number, grade_level, gender, ethnicity FROM students WHERE schoolid = 100 AND gender = ‘F’ AND (grade_level = 3 OR grade_level = 4 OR grade_level = 5) WHERE schoolid = 100 AND gender = ‘F’ AND grade_level IN (3,4,5) SELECT schoolid, student_number, grade_level, gender, ethnicity FROM students WHERE schoolid = 100 AND gender = ‘F’ AND grade_level >= 3 SELECT schoolid, student_number, grade_level, gender, ethnicity WHERE schoolid = 100 AND gender = ‘F’ AND grade_level BETWEEN 3 AND 5
19
ORDER BY SELECT schoolid, student_number, grade_level, gender, ethnicity FROM students WHERE schoolid = 100 AND gender = ‘F’ AND grade_level IN (3,4,5) ORDER BY grade_level ORDER BY grade_level,student_number
20
Aggregate Functions COUNT MAX MIN AVG SUM
Counts the number of rows that meet the WHERE clause constraints MAX Returns the maximum value from a column MIN Returns the minimum value from a column AVG Returns the average value from a numeric column SUM Returns the sum of the values in a numeric column
21
GROUP BY SELECT ethnicity,count(*) FROM students WHERE enroll_status = 0 GROUP BY ethnicity SELECT grade_level,ethnicity,count(*) FROM students WHERE enroll_status = 0 GROUP BY grade_level,ethnicity ORDER BY grade_level,ethnicity
22
HAVING SELECT team,count(*) FROM students WHERE enroll_status = 0 AND schoolid = 295 GROUP BY team HAVING count(*) > 450 ORDER BY team SELECT schoolid,home_room,count(*) WHERE enroll_status = 0 AND NOT schoolid IN (105,182,295) GROUP BY schoolid,home_room HAVING count(*) > 23 ORDER BY schoolid,home_room
23
LIKE & Wildcards Wildcards SELECT course_number, course_name
‘%’ (percent) substitute for one or more characters ‘_’ (underscore) Substitute for exactly one character SELECT course_number, course_name FROM courses WHERE course_number LIKE ‘00%’ WHERE course_number LIKE ’_ _1%’ (note: underscores separated by space for clarity only; do NOT separate with space in query)
24
SQL Aliases Used for Specifying the output column names Abbreviating table names SELECT s.lastfirst “Student”, s.home_room “Teacher” FROM students s
25
JOIN Used to link multiple tables based on the relationship between certain columns (called “keys”) JOIN notation Explicit Uses SQL keywords JOIN and ON SELECT s.lastfirst,s g.course_name, sg.grade FROM students s JOIN storedgrades sg ON sg.studentid = s.id Implicit Lists the tables separated by commas and the WHERE clause provides additional constraints SELECT s.lastfirst, sg.course_name, sg.grade FROM students s, storedgrades sg WHERE s.id = sg.studentid
26
JOIN Types Types INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN Self-Join
Returns records when there is at least one match between tables LEFT JOIN Returns records from the left table regardless of matches in other table RIGHT JOIN Returns records from the right table regardless of matches in other table FULL JOIN Combines LEFT and RIGHT JOINs Returns records for both tables regardless of matches in other table Self-Join Joins a table to itself
27
INNER JOIN SELECT hr.levelvalue, s.lastfirst, s.grade_level FROM honorroll hr JOIN students s ON s.id = hr.studentid WHERE hr.yearid = 20 AND hr.storecode = ‘Q1’ ORDER BY hr.levelvalue, s.lastfirst SELECT s.schoolid, t.lastfirst, s.lastfirst FROM students s JOIN cc ON cc.studentid = s.id AND cc.termid = 2000 AND cc.course_number LIKE ‘00%’ AND cc.expression LIKE ‘1(%’ JOIN teachers t ON cc.teacherid = t.id WHERE s.enroll_status = 0 ORDER BY s.schoolid, t.lastfirst, s.lastfirst
28
LEFT JOIN SELECT s.grade_level, s.lastfirst, hr.levelvalue FROM students s LEFT JOIN honorroll hr ON s.id = hr.studentid AND hr.yearid = 20 AND hr.storecode = ‘Q1’ ORDER BY s.grade_level, s.lastfirst SELECT s.grade_level, s.lastfirst, sg.percent FROM students s LEFT JOIN storedgrades sg ON sg.studentid = s.id AND sg.percent < 70 AND sg.storecode = ‘Q1’ AND sg.termid = 2000 AND sg.course_number LIKE ‘271%’ WHERE s.enroll_status = 0 AND s.schoolid = 100 ORDER BY s.grade_level, s.lastfirst
29
SQL Built-in Functions
Allow manipulation of returned fields Examples To_char() To_char(entrydate,’YYYYMMDD’) Upper()/Lower() Upper(last_name) Decode() Decode(grade_level,-1,PK,0,K,grade_level) Many more Oracle/PLSQL: Built-in Functions
30
What are sqlReports? Free customization for PowerSchool created by Dean Dahlvang (PS user in Minnesota) Creates a new tab on the Reports page Harnesses SQL to search multiple tables and create user-runnable reports Allows importing and exporting for sharing among systems
31
How do I get sqlReports? Download Custom Reports Bundle from powerdatasolutions.org Installation: Copy the bundle into the custom web_root, or Upload via CPM Ensure customization is turned on System System Settings Customization
32
Creating an sqlReport Start Page System Reports Custom SQL Reports
33
Creating an sqlReport (cont.)
Click the “Create a new sqlReport” link
34
Report Information
35
Report Information (cont.)
36
Query Section
37
SQL Query select s.lastfirst, decode(s.schoolid,100,'MLGES',105,'SMMS',110,'SMES', 182,'CMS',187,'CRES',189,'MHES',192,'WES',193,'KES', 195,'DLRES',197,'SES',295,'CCHS',495,'MLCES'), decode(s.enroll_status,-1,'Pre-Registered', 0,'Active',2,'Transferred Out',3,'Graduated', 4,'Imported as Historical') from students s where s.last_name like 'Smith%'
38
Query Section (cont.) Paste SQL query and click Build Header
Replace “Column X” with header names
39
Student Selection
40
Student Selection (cont.)
Check box and click Build Query Insert DCID alias (if necessary) and remove Order By clause
41
Parameters
42
Parameters (cont.) Replace comparison value with %paramX”, where X is the parameter number
43
Parameters (cont.) Enter display name and default value
44
Examples
45
Export a template Right click export link to save report template as a text file
46
Template Contents
47
Import Template
48
Import Template (cont.)
49
Template Contents Remove
50
Examples
51
Q & A
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.