Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chris A. McManigal Camden County Schools Kingsland, GA

Similar presentations


Presentation on theme: "Chris A. McManigal Camden County Schools Kingsland, GA"— Presentation transcript:

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


Download ppt "Chris A. McManigal Camden County Schools Kingsland, GA"

Similar presentations


Ads by Google