Copyright 2007, Information Builders. Slide 1 Walter Brengel Information Builders New Jersey User Forum – June 2008 FOCUS to SQL DeMystified.

Slides:



Advertisements
Similar presentations
Relational Efficiencies Renee Teatro June Relational Efficiencies Agenda  Optimization Overview  JOIN Scenarios  Sort Scenarios  Aggregation.
Advertisements

Basic SQL Introduction Presented by: Madhuri Bhogadi.
Copyright 2007, Information Builders. Slide 1 Relational Efficiencies: Part II Overview and JOIN / Sort Scenarios Renee Teatro Information Builders.
1 Copyright 2007, Information Builders. Slide 1 Nat Poe WebFOCUS Debugging Techniques.
Copyright 2007, Information Builders. Slide 1 Relational Efficiencies: Part III Overview and Aggregation / Selection Scenarios Renee Teatro Information.
Introduction to Structured Query Language (SQL)
Module 9: Implementing Stored Procedures. Introduction to Stored Procedures Creating Executing Modifying Dropping Using Parameters in Stored Procedures.
Fundamentals, Design, and Implementation, 9/e Chapter 11 Managing Databases with SQL Server 2000.
1 SQL-Structured Query Language SQL is the most common language used for creating and querying relational databases. Many users can access a database applications.
A Guide to Oracle9i1 Advanced SQL And PL/SQL Topics Chapter 9.
Introduction to Structured Query Language (SQL)
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Akhila Kondai October 30, 2013.
© Yanbu University College YANBU UNIVERSITY COLLEGE Management Science Department © Yanbu University College Module 6:WEB SERVER AND SERVER SIDE SCRPTING,
Chapter 9 SQL and RDBMS Part C. SQL Copyright 2005 Radian Publishing Co.
ASP.NET Programming with C# and SQL Server First Edition
IMS 4212: Application Architecture and Intro to Stored Procedures 1 Dr. Lawrence West, Management Dept., University of Central Florida
Copyright © 2003 Pearson Education, Inc. Slide 8-1 The Web Wizard’s Guide to PHP by David Lash.
Chapter 10 Queries and Updating Part C. SQL Copyright 2005 Radian Publishing Co.
PHP Programming with MySQL Slide 8-1 CHAPTER 8 Working with Databases and MySQL.
Module 8: Implementing Stored Procedures. Introducing Stored Procedures Creating, Modifying, Dropping, and Executing Stored Procedures Using Parameters.
Module 1: Introduction to Transact-SQL
Copyright 2007, Information Builders. Slide 1 Relational Efficiencies: Part I Renee Teatro Information Builders.
 2004 Prentice Hall, Inc. All rights reserved. 1 Segment – 6 Web Server & database.
Structure Query Language SQL. Database Terminology Employee ID 3 3 Last name Small First name Tony 5 5 Smith James
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
SQL Basic. What is SQL? SQL (pronounced "ess-que-el") stands for Structured Query Language. SQL is used to communicate with a database.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
IMS 4212: Data Manipulation 1 Dr. Lawrence West, MIS Dept., University of Central Florida Additional Data Manipulation Statements INSERT.
Mauricio Featherman, Ph.D. Washington St. University
Chapter 4: SQL Complex Queries Complex Queries Views Views Modification of the Database Modification of the Database Joined Relations Joined Relations.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
© IBM Corporation 2005 Informix User Forum 2005 John F. Miller III Explaining SQLEXPLAIN ®
Module 7: Implementing Views. Overview Introducing Views Defining and Using Views Using Views to Optimize Performance.
SQL Overview Structured Query Language. Description  When Codd first described the theory of relational databases, he asserted that there should be a.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Aliya Farheen October 29,2015.
Understanding Databases Lesson 6. Objective Domain Matrix Skills/ConceptsMTA Exam Objectives Understanding Relational Database Concepts Understand relational.
(SQL - Structured Query Language)
What is MySQL? MySQL is a relational database management system (RDBMS) based on SQL (Structured Query Language). First released in January, Many.
JOIN Syntax and Techniques Noreen Redden Information Builders Copyright 2011, Information Builders. Slide 1.
05 | SET Operators, Windows Functions, and Grouping Brian Alderman | MCT, CEO / Founder of MicroTechPoint Tobias Ternstrom | Microsoft SQL Server Program.
Relational Database Management System(RDBMS) Structured Query Language(SQL)
Starting with Oracle SQL Plus. Today in the lab… Connect to SQL Plus – your schema. Set up two tables. Find the tables in the catalog. Insert four rows.
IMS 4212: Application Architecture and Intro to Stored Procedures 1 Dr. Lawrence West, Management Dept., University of Central Florida
Chapter 3: Relational Databases
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Presentation on Database management Submitted To: Prof: Rutvi Sarang Submitted By: Dharmishtha A. Baria Roll:No:1(sem-3)
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
There’s a particular style to it… Rob Hatton
MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Sravanthi Lakkimsety Mar 14,2016.
MY SQL INTRODUCTION TO LOGIN BASIC COMMANDS OTHER COMMANDS.
Copyright © Curt Hill SQL The Data Manipulation Language.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe.
SQL Basics Review Reviewing what we’ve learned so far…….
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
Oracle Database Architectural Components
SQL Query Getting to the data ……..
Structured Query Language
Structured Query Language – The Basics
Chapter 8 Working with Databases and MySQL
Web Services שפת SQL כתבה: זהבה יעקובסון ליווי מקצועי : ארז קלר
Database systems Lecture 3 – SQL + CRUD
Chapter 8 Advanced SQL.
Chapter 11 Managing Databases with SQL Server 2000
Assignment 1 Due Thursday Jan 19, 2006
Manipulating Data Lesson 3.
Presentation transcript:

Copyright 2007, Information Builders. Slide 1 Walter Brengel Information Builders New Jersey User Forum – June 2008 FOCUS to SQL DeMystified

Copyright 2007, Information Builders. Slide 2 FOCUS To SQL DeMystified - Agenda n SQL Overview n SQL Traces n Verb Objects n Sorting n Record Selection n Defining Fields n Combining Files

Copyright 2007, Information Builders. Slide 3  Generic Across Databases Generic Across Databases  Language Used By The Relational Database Management System (RDBMS). Language Used By The Relational Database Management System (RDBMS).  Differences: Differences:  WHERE Masking Using LIKE (% vs *) WHERE Masking Using LIKE (% vs *)  Functions Functions  Mostly – Generic Statement Will Work Across Databases Mostly – Generic Statement Will Work Across Databases  Allows Selecting, Inserting And Updating Records Into A Table Allows Selecting, Inserting And Updating Records Into A Table FOCUS To SQL Demystified – What IS SQL?

Copyright 2007, Information Builders. Slide 4 select t1.column1, sum(t1.column2) from tablename t1 where t1.columnname = 'value' group by t1.column1 order by t1.column1; Simple Select Statement: FOCUS To SQL DeMystified – What Is SQL?

Copyright 2007, Information Builders. Slide 5 SET TRACEOFF=ALL SET TRACEON=SQLAGGR//CLIENT SET TRACEON=STMTRACE//CLIENT SET TRACESTAMP=OFF SET TRACEUSER=ON SET XRETRIEVAL=OFF How To See The SQL Generated By FOCUS: FOCUS To SQL DeMystified – TRACE Settings

Copyright 2007, Information Builders. Slide 6  SQLAGGR  Displays Data Adapter ‑ to ‑ RDBMS Aggregation And Join Analysis.  Used Only For Focus Reporting Operations Such As Table, Graph, And Match File.  If The Data Adapter Is Able To Pass All Join, Sort, And Aggregation Operations, The SQLAGGR Trace Is Not Populated. The Message "AGGREGATION DONE..." Appears.  Formerly FSTRACE3. FOCUS To SQL Demystified – TRACE Settings

Copyright 2007, Information Builders. Slide 7  STMTRACE  Records SQL SELECT Statements Generated By The Data Adapter For FOCUS Report Requests.  Modify Procedures, Or Direct Sql Passthru Select Requests. It Also Records The SQL Data.  Definition Language (DDL) Statements Generated By The Create File Command.  Display The Trace Information Online.  Store It In A File Or Sequential Data Set.  The Data Adapter Terminates Its Generated SQL Select Statements With A Semicolon.  You Can Submit Them To The RDBMS For Processing, Interactively Or In Batch.  Use STMTRACE for:  Debugging.  Performance Tuning.  Capturing SQL Data Definition And Data Manipulation Statements To Reuse.  Formerly FSTRACE4. FOCUS To SQL DeMystified – TRACE Settings

Copyright 2007, Information Builders. Slide 8 MASTER: FILENAME=ORDERS, SUFFIX=SQLMSS, $ SEGMENT=ORDERS, SEGTYPE=S0, $ FIELDNAME=ORDERID, ALIAS=OrderID, USAGE=I11, ACTUAL=I4, FIELDTYPE=R,$ FIELDNAME=CUSTOMERID, ALIAS=CustomerID, USAGE=A5, ACTUAL=A5, MISSING=ON, $ FIELDNAME=EMPLOYEEID, ALIAS=EmployeeID, USAGE=I11, ACTUAL=I4, MISSING=ON, $ FIELDNAME=ORDERDATE, ALIAS=OrderDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=REQUIREDDATE, ALIAS=RequiredDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=SHIPPEDDATE, ALIAS=ShippedDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=SHIPVIA, ALIAS=ShipVia, USAGE=I11, ACTUAL=I4, MISSING=ON, $ FIELDNAME=FREIGHT, ALIAS=Freight, USAGE=P21.4, ACTUAL=P10, MISSING=ON, $ FIELDNAME=SHIPNAME, ALIAS=ShipName, USAGE=A40V, ACTUAL=A40V, MISSING=ON, $ FIELDNAME=SHIPADDRESS, ALIAS=ShipAddress, USAGE=A60V, ACTUAL=A60V, MISSING=ON, $ FIELDNAME=SHIPCITY, ALIAS=ShipCity, USAGE=A15V, ACTUAL=A15V, MISSING=ON, $ FIELDNAME=SHIPREGION, ALIAS=ShipRegion, USAGE=A15V, ACTUAL=A15V, MISSING=ON, $ FIELDNAME=SHIPPOSTALCODE, ALIAS=ShipPostalCode, USAGE=A10V, ACTUAL=A10V, MISSING=ON, $ FIELDNAME=SHIPCOUNTRY, ALIAS=ShipCountry, USAGE=A15V, ACTUAL=A15V, MISSING=ON, $ Northwind Orders Table ACCESS: SEGNAME=ORDERS, TABLENAME=Northwind.dbo.Orders, CONNECTION=CON01, KEYS=1, $ FOCUS To SQL DeMystified

Copyright 2007, Information Builders. Slide 9 TABLE FILE ORDERS PRINT ORDERID CUSTOMERID EMPLOYEEID ORDERDATE END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."OrderID",T1."CustomerID",T1."EmployeeID", T1."OrderDate" FROM Northwind.dbo.Orders T1;...RETRIEVAL KILLED 0 NUMBER OF RECORDS IN TABLE= 0 LINES= 0 FOCUS To SQL DeMystified – PRINT

Copyright 2007, Information Builders. Slide 10 TABLE FILE ORDERS PRINT ORDERID CUSTOMERID ORDERDATE BY EMPLOYEEID END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."OrderID",T1."CustomerID",T1."EmployeeID", T1."OrderDate" FROM Northwind.dbo.Orders T1 ORDER BY T1."EmployeeID";...RETRIEVAL KILLED 0 NUMBER OF RECORDS IN TABLE= 0 LINES= 0 FOCUS To SQL DeMystified – Sorting

Copyright 2007, Information Builders. Slide 11 Master File: FILENAME=ORDER_DETAILS, SUFFIX=SQLMSS, $ SEGMENT=ORDER_DETAILS, SEGTYPE=S0, $ FIELDNAME=ORDERID, ALIAS=OrderID, USAGE=I11, ACTUAL=I4, $ FIELDNAME=PRODUCTID, ALIAS=ProductID, USAGE=I11, ACTUAL=I4, $ FIELDNAME=UNITPRICE, ALIAS=UnitPrice, USAGE=P21.4, ACTUAL=P10, $ FIELDNAME=QUANTITY, ALIAS=Quantity, USAGE=I6, ACTUAL=I2, $ FIELDNAME=DISCOUNT, ALIAS=Discount, USAGE=D20.2, ACTUAL=D8, $ Access File: SEGNAME=ORDER_DETAILS, TABLENAME=Northwind.dbo."Order Details", CONNECTION=CON01, KEYS=2, $ FOCUS To SQL DeMystified

Copyright 2007, Information Builders. Slide 12 TABLE FILE ORDER_DETAILS SUM UNITPRICE QUANTITY BY ORDERID END FOC AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC OVERFLOW MAY OCCUR WHEN SUMMING AN I2 FIELD WITH USAGE I, D OR P SELECT T1."OrderID", SUM(T1."UnitPrice"), SUM(T1."Quantity") FROM Northwind.dbo."Order Details" T1 GROUP BY T1."OrderID" ORDER BY T1."OrderID"; FOCUS To SQL DeMystified – SUM

Copyright 2007, Information Builders. Slide 13 FOC AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC OVERFLOW MAY OCCUR WHEN SUMMING AN I2 FIELD WITH USAGE I, D OR P SELECT T1."OrderID", SUM(T1."UnitPrice"), SUM(T1."Quantity") FROM Northwind.dbo."Order Details" T1 GROUP BY T1."OrderID" ORDER BY T1."OrderID"; ? 2589 (FOC2589) AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS %1%2%3%4 This is the first line of the Interface FSTRACE3 output that is generated when RDBMS aggregation has been performed, but may produce different re- sults than FOCUS would have if optimization had been disabled and FOCUS had managed the JOINs and aggregation. Examine report results carefully. FOCUS To SQL DeMystified – SUM

Copyright 2007, Information Builders. Slide 14 TABLE FILE ORDER_DETAILS SUM UNITPRICE QUANTITY COMPUTE TTLPRICE/D12.2=UNITPRICE * QUANTITY; BY ORDERID END FOC AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC OVERFLOW MAY OCCUR WHEN SUMMING AN I2 FIELD WITH USAGE I, D OR P SELECT T1."OrderID", SUM(T1."UnitPrice"), SUM(T1."Quantity") FROM Northwind.dbo."Order Details" T1 GROUP BY T1."OrderID" ORDER BY T1."OrderID"; FOCUS To SQL DeMystified – COMPUTE

Copyright 2007, Information Builders. Slide 15 DEFINE FILE ORDER_DETAILS TTLPRICE/D12.2=UNITPRICE * QUANTITY; END TABLE FILE ORDER_DETAILS SUM UNITPRICE QUANTITY TTLPRICE BY ORDERID END FOC AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC OVERFLOW MAY OCCUR WHEN SUMMING AN I2 FIELD WITH USAGE I, D OR P SELECT T1."OrderID", SUM(T1."UnitPrice"), SUM(T1."Quantity"), SUM((T1."UnitPrice" * T1."Quantity")) FROM Northwind.dbo."Order Details" T1 GROUP BY T1."OrderID" ORDER BY T1."OrderID"; FOCUS To SQL DeMystified – DEFINE

Copyright 2007, Information Builders. Slide 16 DEFINE FILE ORDER_DETAILS TTLPRICE/D12.2=UNITPRICE * QUANTITY; COSTFLAG/A10=IF TTLPRICE GT THEN 'HIGH' ELSE IF TTLPRICE GT THEN 'MEDIUM' ELSE 'LOW'; END TABLE FILE ORDER_DETAILS SUM UNITPRICE QUANTITY TTLPRICE BY ORDERID WHERE COSTFLAG EQ 'HIGH' END SELECT T1."OrderID", SUM(T1."UnitPrice"), SUM(T1."Quantity"), SUM((T1."UnitPrice" * T1."Quantity")) FROM Northwind.dbo."Order Details" T1 WHERE ((CASE WHEN ((T1."UnitPrice" * T1."Quantity") > 5000) THEN 'HIGH' WHEN ((T1."UnitPrice" * T1."Quantity") > 1000) THEN 'MEDIUM' ELSE 'LOW' END) = 'HIGH') GROUP BY T1."OrderID" ORDER BY T1."OrderID"; FOCUS To SQL DeMystified – DEFINE

Copyright 2007, Information Builders. Slide 17 SQL engine ? (FOC1450) CURRENT SQLMSS INTERFACE SETTINGS ARE : (FOC1656) DEFAULT SERVER NAME - : CON01 cp01211dt1\dt1_sql (FOC1502) USERID AND PASSWORD ARE - : (FOC1758) CURRENT ISOLATION LEVEL IS - : RC (FOC1496) AUTODISCONNECT OPTION IS - : ON FIN (FOC1499) AUTOCOMMIT OPTION IS - : ON COMMAND (FOC1491) FETCH BUFFERING FACTOR - : 100 (FOC1755) CURSORS TYPE IS - : SERVER (FOC1723) TRANSACTION MODE IS - : LOCAL (FOC1441) WRITE FUNCTIONALITY IS - : ON (FOC1445) OPTIMIZATION OPTION IS - : ON (FOC1763) IF-THEN-ELSE OPTIMIZATION IS - : OFF (FOC1709) NCHAR OPTION IS - : SBCS FOCUS To SQL DeMystified – Settings

Copyright 2007, Information Builders. Slide 18 SQL SQLMSS SET OPTIFTHENELSE ON DEFINE FILE ORDER_DETAILS TTLPRICE/D12.2=UNITPRICE * QUANTITY; COSTFLAG/A10=IF TTLPRICE GT THEN 'HIGH' ELSE IF TTLPRICE GT THEN 'MEDIUM' ELSE 'LOW'; END TABLE FILE ORDER_DETAILS SUM UNITPRICE QUANTITY TTLPRICE BY ORDERID WHERE COSTFLAG EQ 'HIGH' END SELECT T1."OrderID", SUM(T1."UnitPrice"), SUM(T1."Quantity"), SUM((T1."UnitPrice" * T1."Quantity")) FROM Northwind.dbo."Order Details" T1 WHERE ((((T1."UnitPrice" * T1."Quantity") > 5000))) GROUP BY T1."OrderID" ORDER BY T1."OrderID"; FOCUS To SQL DeMystified – OPTIFTHENELSE

Copyright 2007, Information Builders. Slide 19 Type of JOINS INNER FULL LEFT OUTER FOCUS To SQL DeMystified – JOINs

Copyright 2007, Information Builders. Slide 20 MASTER FILE: FILENAME=EMPLOYEETERRITORIES, SUFFIX=SQLMSS, $ SEGMENT=EMPLOYEETERRITORIES, SEGTYPE=S0, $ FIELDNAME=EMPLOYEEID, ALIAS=EmployeeID, USAGE=I11, ACTUAL=I4, $ FIELDNAME=TERRITORYID, ALIAS=TerritoryID, USAGE=A20V, ACTUAL=A20V, $ MASTER FILE: FILENAME=TERRITORIES, SUFFIX=SQLMSS, $ SEGMENT=TERRITORIES, SEGTYPE=S0, $ FIELDNAME=TERRITORYID, ALIAS=TerritoryID, USAGE=A20V, ACTUAL=A20V, $ FIELDNAME=TERRITORYDESCRIPTION, ALIAS=TerritoryDescription, USAGE=A50, ACTUAL=A50, $ FIELDNAME=REGIONID, ALIAS=RegionID, USAGE=I11, ACTUAL=I4, $ FOCUS To SQL DeMystified – JOINs

Copyright 2007, Information Builders. Slide 21 JOIN INNER TERRITORYID IN EMPLOYEETERRITORIES TO TERRITORYID IN TERRITORIES AS J1 TABLE FILE EMPLOYEETERRITORIES PRINT TERRITORYDESCRIPTION BY EMPLOYEEID BY TERRITORYID END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."EmployeeID",T1."TerritoryID", T2."TerritoryDescription" FROM Northwind.dbo.EmployeeTerritories T1,Northwind.dbo.Territories T2 WHERE (T2."TerritoryID" = T1."TerritoryID") ORDER BY T1."EmployeeID",T1."TerritoryID"; FOCUS To SQL DeMystified – INNER JOINs

Copyright 2007, Information Builders. Slide 22 JOIN LEFT_OUTER TERRITORYID IN EMPLOYEETERRITORIES TO TERRITORYID IN TERRITORIES AS J1 END TABLE FILE EMPLOYEETERRITORIES PRINT TERRITORYDESCRIPTION BY EMPLOYEEID BY TERRITORYID END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."EmployeeID",T1."TerritoryID",T2."TerritoryID", T2."TerritoryDescription" FROM ( Northwind.dbo.EmployeeTerritories T1 LEFT OUTER JOIN Northwind.dbo.Territories T2 ON T2."TerritoryID" = T1."TerritoryID" ) ORDER BY T1."EmployeeID",T1."TerritoryID"; FOCUS To SQL DeMystified – LEFT OUTER JOIN

Copyright 2007, Information Builders. Slide 23 TABLE FILE EMPLOYEETERRITORIES PRINT EMPLOYEEID TERRITORYID ON TABLE HOLD END JOIN TERRITORYID IN HOLD TO TERRITORYID IN TERRITORIES AS J1 TABLE FILE HOLD PRINT TERRITORYDESCRIPTION BY EMPLOYEEID BY TERRITORYID END FOCUS To SQL DeMystified – JOIN from HOLD

Copyright 2007, Information Builders. Slide 24 FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."EmployeeID",T1."TerritoryID" FROM Northwind.dbo.EmployeeTerritories T1;...RETRIEVAL KILLED 0 NUMBER OF RECORDS IN TABLE= 0 LINES= 0 TABLE FILE EMPLOYEETERRITORIES PRINT EMPLOYEEID TERRITORYID ON TABLE HOLD END JOIN TERRITORYID IN HOLD TO TERRITORYID IN TERRITORIES AS J1 TABLE FILE HOLD PRINT TERRITORYDESCRIPTION BY EMPLOYEEID BY TERRITORYID END FOCUS To SQL DeMystified – JOIN from HOLD

Copyright 2007, Information Builders. Slide 25 TABLE FILE EMPLOYEETERRITORIES PRINT EMPLOYEEID TERRITORYID ON TABLE HOLD END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC NON-SQL SEGMENT IN HIERARCHY (OTHER INTERFACE PRESENT) SELECT T2."TerritoryDescription" FROM Northwind.dbo.Territories T2 WHERE (T2."TerritoryID" = ?);...RETRIEVAL KILLED 0 NUMBER OF RECORDS IN TABLE= 0 LINES= 0 JOIN TERRITORYID IN HOLD TO TERRITORYID IN TERRITORIES AS J1 TABLE FILE HOLD PRINT TERRITORYDESCRIPTION BY EMPLOYEEID BY TERRITORYID END FOCUS To SQL DeMystified – JOIN from HOLD

Copyright 2007, Information Builders. Slide 26 DEFINE FILE ORDER_DETAILS QTRDEF/P10.3=QUANTITY / 4; END TABLE FILE ORDER_DETAILS SUM QUANTITY QTRDEF COMPUTE QTRCOMP/P10.3=QUANTITY / 4; BY ORDERID WHERE ORDERID LE END FOC AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC OVERFLOW MAY OCCUR WHEN SUMMING AN I2 FIELD WITH USAGE I, D OR P SELECT T1."OrderID", SUM(T1."Quantity"), SUM((T1."Quantity" / 4)) FROM Northwind.dbo."Order Details" T1 WHERE (T1."OrderID" <= 10250) GROUP BY T1."OrderID" ORDER BY T1."OrderID"; 0 NUMBER OF RECORDS IN TABLE= 3 LINES= 3 ORDERID QUANTITY QTRDEF QTRCOMP FOCUS To SQL DeMystified – INTEGER Arithmetic

Copyright 2007, Information Builders. Slide 27 DEFINE FILE ORDER_DETAILS QTRDEF/P10.3=QUANTITY / 4; END TABLE FILE ORDER_DETAILS SUM QUANTITY QTRDEF COMPUTE QTRCOMP/P10.3=QUANTITY / 4; BY ORDERID SUM QUANTITY QTRDEF BY ORDERID BY PRODUCTID WHERE ORDERID LE END ORDERID QUANTITY QTRDEF QTRCOMP PRODUCTID QUANTITY QTRDEF FOCUS To SQL DeMystified – INTEGER Arithmetic

Copyright 2007, Information Builders. Slide 28 SQL SQLMSS SET OPT NOAGGR DEFINE FILE ORDER_DETAILS QTRDEF/P10.3=QUANTITY / 4; END TABLE FILE ORDER_DETAILS SUM QUANTITY QTRDEF COMPUTE QTRCOMP/P10.3=QUANTITY / 4; BY ORDERID WHERE ORDERID LE END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION DISABLED BY USER SELECT T1."OrderID",T1."Quantity" FROM Northwind.dbo."Order Details" T1 WHERE (T1."OrderID" <= 10250) ORDER BY T1."OrderID"; ORDERID QUANTITY QTRDEF QTRCOMP FOCUS To SQL DeMystified – INTEGER Arithmetic

Copyright 2007, Information Builders. Slide 29 FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION DISABLED BY USER SELECT T1."OrderID",T1."Quantity" FROM Northwind.dbo."Order Details" T1 WHERE (T1."OrderID" <= 10250) ORDER BY T1."OrderID"; FOC AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC OVERFLOW MAY OCCUR WHEN SUMMING AN I2 FIELD WITH USAGE I, D OR P SELECT T1."OrderID", SUM(T1."Quantity"), SUM((T1."Quantity" / 4)) FROM Northwind.dbo."Order Details" T1 WHERE (T1."OrderID" <= 10250) GROUP BY T1."OrderID" ORDER BY T1."OrderID"; SQL engine SET OPT AGGR SQL engine SET OPT NOAGGR FOCUS To SQL DeMystified – SQLAGGR

Copyright 2007, Information Builders. Slide 30 Master File: FILENAME=ORDERS, SUFFIX=SQLMSS, $ SEGMENT=ORDERS, SEGTYPE=S0, $ FIELDNAME=ORDERID, ALIAS=OrderID, USAGE=I11, ACTUAL=I4, FIELDTYPE=R, $ FIELDNAME=CUSTOMERID, ALIAS=CustomerID, USAGE=A5, ACTUAL=A5, MISSING=ON, $ FIELDNAME=EMPLOYEEID, ALIAS=EmployeeID, USAGE=I11, ACTUAL=I4, MISSING=ON, $ FIELDNAME=ORDERDATE, ALIAS=OrderDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=REQUIREDDATE, ALIAS=RequiredDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=SHIPPEDDATE, ALIAS=ShippedDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=SHIPVIA, ALIAS=ShipVia, USAGE=I11, ACTUAL=I4, MISSING=ON, $ FIELDNAME=FREIGHT, ALIAS=Freight, USAGE=P21.4, ACTUAL=P10, MISSING=ON, $ FIELDNAME=SHIPNAME, ALIAS=ShipName, USAGE=A40V, ACTUAL=A40V, MISSING=ON, $ FIELDNAME=SHIPADDRESS, ALIAS=ShipAddress, USAGE=A60V, ACTUAL=A60V, MISSING=ON, $ FIELDNAME=SHIPCITY, ALIAS=ShipCity, USAGE=A15V, ACTUAL=A15V, MISSING=ON, $ FIELDNAME=SHIPREGION, ALIAS=ShipRegion, USAGE=A15V, ACTUAL=A15V, MISSING=ON, $ FIELDNAME=SHIPPOSTALCODE, ALIAS=ShipPostalCode, USAGE=A10V, ACTUAL=A10V, MISSING=ON, $ FIELDNAME=SHIPCOUNTRY, ALIAS=ShipCountry, USAGE=A15V, ACTUAL=A15V, MISSING=ON, $ Northwind Orders table Access File: SEGNAME=ORDERS, TABLENAME=Northwind.dbo.Orders, CONNECTION=CON01, KEYS=1, $ FOCUS To SQL DeMystified – DATE Conditions

Copyright 2007, Information Builders. Slide 31 DEFINE FILE ORDERS ORDERDT/YYMD=HDATE(ORDERDATE,'YYMD'); END TABLE FILE ORDERS PRINT ORDERID EMPLOYEEID CUSTOMERID ORDERDATE WHERE ORDERDT EQ '1996/07/08' END FOC FOCUS IF/WHERE TEST CANNOT BE PASSED TO SQL : ORDERDT FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."OrderID",T1."CustomerID",T1."EmployeeID", T1."OrderDate" FROM Northwind.dbo.Orders T1; ORDERID EMPLOYEEID CUSTOMERID ORDERDATE HANAR 1996/07/08 00:00: VICTE 1996/07/08 00:00: FOCUS To SQL DeMystified – DATE Conditions

Copyright 2007, Information Builders. Slide 32 ? STAT STATISTICS OF LAST COMMAND RECORDS = 2 SEGS DELTD = 0 LINES = 2 NOMATCH = 0 BASEIO = 0 DUPLICATES = 0 SORTIO = 0 FORMAT ERRORS = 0 SORT PAGES = 0 INVALID CONDTS = 0 READS = 830 OTHER REJECTS = 0 TRANSACTIONS = 0 CACHE READS = 0 ACCEPTED = 0 MERGES = 0 SEGS INPUT = 0 SORT STRINGS = 0 SEGS CHNGD = 0 INDEXIO = 0 INTERNAL MATRIX CREATED: YES AUTOINDEX USED: NO SORT USED: SQL AUTOPATH USED: NO AGGREGATION BY EXT.SORT: NO HOLD FROM EXTERNAL SORT: NO FOCUS To SQL DeMystified – Report Statistics

Copyright 2007, Information Builders. Slide 33 Master File: FILENAME=ORDERS, SUFFIX=SQLMSS, $ SEGMENT=ORDERS, SEGTYPE=S0, $ FIELDNAME=ORDERID, ALIAS=OrderID, USAGE=I11, ACTUAL=I4, FIELDTYPE=R, $ FIELDNAME=CUSTOMERID, ALIAS=CustomerID, USAGE=A5, ACTUAL=A5, MISSING=ON, $ FIELDNAME=EMPLOYEEID, ALIAS=EmployeeID, USAGE=I11, ACTUAL=I4, MISSING=ON, $ FIELDNAME=ORDERDATE, ALIAS=OrderDate, USAGE=HYYMDs, ACTUAL=HYYMDs, MISSING=ON, $ FIELDNAME=ORDERDT, ALIAS=OrderDate, USAGE=YYMD, ACTUAL=DATE, MISSING=ON, $ Northwind Orders table Access File: SEGNAME=ORDERS, TABLENAME=Northwind.dbo.Orders, CONNECTION=CON01, KEYS=1, $ FOCUS To SQL DeMystified – DATE Conditions

Copyright 2007, Information Builders. Slide 34 TABLE FILE ORDERS PRINT ORDERID EMPLOYEEID CUSTOMERID ORDERDATE WHERE ORDERDT EQ '1996/07/08' END FOC AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC AGGREGATION IS NOT APPLICABLE TO THE VERB USED SELECT T1."OrderID",T1."CustomerID",T1."EmployeeID", T1."OrderDate",T1."OrderDate" FROM Northwind.dbo.Orders T1 WHERE (T1."OrderDate" = ' '); ORDERID EMPLOYEEID CUSTOMERID ORDERDATE HANAR 1996/07/08 00:00: VICTE 1996/07/08 00:00: FOCUS To SQL DeMystified – DATE Conditions

Copyright 2007, Information Builders. Slide 35 ? STAT STATISTICS OF LAST COMMAND RECORDS = 2 SEGS DELTD = 0 LINES = 2 NOMATCH = 0 BASEIO = 0 DUPLICATES = 0 SORTIO = 0 FORMAT ERRORS = 0 SORT PAGES = 0 INVALID CONDTS = 0 READS = 2 OTHER REJECTS = 0 TRANSACTIONS = 0 CACHE READS = 0 ACCEPTED = 0 MERGES = 0 SEGS INPUT = 0 SORT STRINGS = 0 SEGS CHNGD = 0 INDEXIO = 0 INTERNAL MATRIX CREATED: YES AUTOINDEX USED: NO SORT USED: SQL AUTOPATH USED: NO AGGREGATION BY EXT.SORT: NO HOLD FROM EXTERNAL SORT: NO FOCUS To SQL DeMystified – Report Statistics

Copyright 2007, Information Builders. Slide 36 FOCUS To SQL DeMystified - Review n SQL Overview n SQL Traces n Verb Objects n Sorting n Record Selection n Defining Fields n Combining Files

Copyright 2007, Information Builders. Slide 37 Thanks for Coming FOCUS To SQL DeMystified – Questions??