copyright 2007, information builders. slide 1 walter brengel information builders new jersey user...

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

Upload: antoine-grounds

Post on 14-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 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 1

Walter Brengel

Information Builders

New Jersey User Forum – June 2008

FOCUS to SQL DeMystified

Page 2: 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

SQL Overview SQL Traces Verb Objects Sorting Record Selection Defining Fields Combining Files

Page 3: 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 3

Generic Across Databases

Language Used By The Relational Database Management System (RDBMS).

Differences:

WHERE Masking Using LIKE (% vs *)

Functions

Mostly – Generic Statement Will Work Across Databases

Allows Selecting, Inserting And Updating Records Into A Table

FOCUS To SQL Demystified – What IS SQL?

Page 4: 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 4

select t1.column1, sum(t1.column2) from tablename t1 where t1.columnname = 'value'group by t1.column1order by t1.column1;

Simple Select Statement:

FOCUS To SQL DeMystified – What Is SQL?

Page 5: 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 5

SET TRACEOFF=ALLSET TRACEON=SQLAGGR//CLIENTSET TRACEON=STMTRACE//CLIENTSET TRACESTAMP=OFFSET TRACEUSER=ONSET XRETRIEVAL=OFF

How To See The SQL Generated By FOCUS:

FOCUS To SQL DeMystified – TRACE Settings

Page 6: 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 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

Page 7: 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 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

Page 8: 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 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

Page 9: 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 9

TABLE FILE ORDERSPRINT ORDERID CUSTOMERID EMPLOYEEID ORDERDATEEND

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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

Page 10: 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 10

TABLE FILE ORDERSPRINT ORDERID CUSTOMERID ORDERDATEBY EMPLOYEEIDEND

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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

Page 11: 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 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

Page 12: 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 12

TABLE FILE ORDER_DETAILSSUM UNITPRICE QUANTITYBY ORDERIDEND

FOC2589 - AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC2612 - 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

Page 13: 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 13

FOC2589 - AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC2612 - 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%4This is the first line of the Interface FSTRACE3 output that is generatedwhen RDBMS aggregation has been performed, but may produce different re-sults than FOCUS would have if optimization had been disabled and FOCUShad managed the JOINs and aggregation. Examine report results carefully.

FOCUS To SQL DeMystified – SUM

Page 14: 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 14

TABLE FILE ORDER_DETAILSSUM UNITPRICE QUANTITYCOMPUTE TTLPRICE/D12.2=UNITPRICE * QUANTITY;BY ORDERIDEND

FOC2589 - AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC2612 - 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

Page 15: 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 15

DEFINE FILE ORDER_DETAILSTTLPRICE/D12.2=UNITPRICE * QUANTITY;ENDTABLE FILE ORDER_DETAILSSUM UNITPRICE QUANTITY TTLPRICEBY ORDERIDEND

FOC2589 - AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC2612 - 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

Page 16: 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 16

DEFINE FILE ORDER_DETAILSTTLPRICE/D12.2=UNITPRICE * QUANTITY;COSTFLAG/A10=IF TTLPRICE GT 5000.00 THEN 'HIGH' ELSE IF TTLPRICE GT 1000.00 THEN 'MEDIUM'

ELSE 'LOW';ENDTABLE FILE ORDER_DETAILSSUM UNITPRICE QUANTITY TTLPRICEBY ORDERIDWHERE 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

Page 17: 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 17

SQL engine ?

(FOC1450) CURRENT SQLMSS INTERFACE SETTINGS ARE : (FOC1656) DEFAULT SERVER NAME - : CON01 cp01211dt1\dt1_sql (FOC1502) USERID AND PASSWORD ARE - : <Trusted> (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

Page 18: 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 18

SQL SQLMSS SET OPTIFTHENELSE ONDEFINE FILE ORDER_DETAILSTTLPRICE/D12.2=UNITPRICE * QUANTITY;COSTFLAG/A10=IF TTLPRICE GT 5000.00 THEN 'HIGH' ELSE IF TTLPRICE GT 1000.00 THEN 'MEDIUM'

ELSE 'LOW';ENDTABLE FILE ORDER_DETAILSSUM UNITPRICE QUANTITY TTLPRICEBY ORDERIDWHERE 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

Page 19: 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 19

Type of JOINS

INNER

FULL

LEFT OUTER

FOCUS To SQL DeMystified – JOINs

Page 20: 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 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

Page 21: 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 21

JOIN INNER TERRITORYID IN EMPLOYEETERRITORIES TO TERRITORYID IN TERRITORIES AS J1TABLE FILE EMPLOYEETERRITORIESPRINT TERRITORYDESCRIPTIONBY EMPLOYEEIDBY TERRITORYIDEND

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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

Page 22: 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 22

JOIN LEFT_OUTER TERRITORYID IN EMPLOYEETERRITORIES TO TERRITORYID IN TERRITORIES AS J1 ENDTABLE FILE EMPLOYEETERRITORIESPRINT TERRITORYDESCRIPTIONBY EMPLOYEEIDBY TERRITORYIDEND

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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

Page 23: 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 23

TABLE FILE EMPLOYEETERRITORIESPRINT EMPLOYEEID TERRITORYIDON TABLE HOLDENDJOIN TERRITORYID IN HOLD TO TERRITORYID IN TERRITORIES AS J1TABLE FILE HOLDPRINT TERRITORYDESCRIPTIONBY EMPLOYEEIDBY TERRITORYIDEND

FOCUS To SQL DeMystified – JOIN from HOLD

Page 24: 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 24

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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 EMPLOYEETERRITORIESPRINT EMPLOYEEID TERRITORYIDON TABLE HOLDENDJOIN TERRITORYID IN HOLD TO TERRITORYID IN TERRITORIES AS J1TABLE FILE HOLDPRINT TERRITORYDESCRIPTIONBY EMPLOYEEIDBY TERRITORYIDEND

FOCUS To SQL DeMystified – JOIN from HOLD

Page 25: 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 25

TABLE FILE EMPLOYEETERRITORIESPRINT EMPLOYEEID TERRITORYIDON TABLE HOLDEND

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2599 - 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 J1TABLE FILE HOLDPRINT TERRITORYDESCRIPTIONBY EMPLOYEEIDBY TERRITORYIDEND

FOCUS To SQL DeMystified – JOIN from HOLD

Page 26: 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 26

DEFINE FILE ORDER_DETAILSQTRDEF/P10.3=QUANTITY / 4;ENDTABLE FILE ORDER_DETAILSSUM QUANTITY QTRDEFCOMPUTE QTRCOMP/P10.3=QUANTITY / 4; BY ORDERIDWHERE ORDERID LE 10250END

FOC2589 - AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC2612 - 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 ------- -------- ------ ------- 10248 27 6.000 6.750 10249 49 12.000 12.250 10250 60 13.000 15.000

FOCUS To SQL DeMystified – INTEGER Arithmetic

Page 27: 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 27

DEFINE FILE ORDER_DETAILSQTRDEF/P10.3=QUANTITY / 4;ENDTABLE FILE ORDER_DETAILSSUM QUANTITY QTRDEFCOMPUTE QTRCOMP/P10.3=QUANTITY / 4; BY ORDERIDSUM QUANTITY QTRDEFBY ORDERIDBY PRODUCTIDWHERE ORDERID LE 10250END

ORDERID QUANTITY QTRDEF QTRCOMP PRODUCTID QUANTITY QTRDEF ------- -------- ------ ------- --------- -------- ------ 10248 27 6.000 6.750 11 12 3.000 42 10 2.000 72 5 1.000 10249 49 12.000 12.250 14 9 2.000 51 40 10.000 10250 60 13.000 15.000 41 10 2.000 51 35 8.000 65 15 3.000

FOCUS To SQL DeMystified – INTEGER Arithmetic

Page 28: 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 28

SQL SQLMSS SET OPT NOAGGRDEFINE FILE ORDER_DETAILSQTRDEF/P10.3=QUANTITY / 4;ENDTABLE FILE ORDER_DETAILSSUM QUANTITY QTRDEFCOMPUTE QTRCOMP/P10.3=QUANTITY / 4; BY ORDERIDWHERE ORDERID LE 10250END

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2616 - 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 ------- -------- ------ ------- 10248 27 6.750 6.750 10249 49 12.250 12.250 10250 60 15.000 15.000

FOCUS To SQL DeMystified – INTEGER Arithmetic

Page 29: 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 29

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2616 - AGGREGATION DISABLED BY USER SELECT T1."OrderID",T1."Quantity" FROM Northwind.dbo."Order Details" T1 WHERE (T1."OrderID" <= 10250) ORDER BY T1."OrderID";

FOC2589 - AGGREGATION DONE BUT MAY PRODUCE INCONSISTENT RESULTS FOC2612 - 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

Page 30: 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 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

Page 31: 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 31

DEFINE FILE ORDERSORDERDT/YYMD=HDATE(ORDERDATE,'YYMD');END

TABLE FILE ORDERSPRINT ORDERID EMPLOYEEID CUSTOMERID ORDERDATEWHERE ORDERDT EQ '1996/07/08'END

FOC2598 - FOCUS IF/WHERE TEST CANNOT BE PASSED TO SQL : ORDERDT FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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 ------- ---------- ---------- --------- 10250 4 HANAR 1996/07/08 00:00:00.000 10251 3 VICTE 1996/07/08 00:00:00.000

FOCUS To SQL DeMystified – DATE Conditions

Page 32: 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 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

Page 33: 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 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

Page 34: 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 34

TABLE FILE ORDERSPRINT ORDERID EMPLOYEEID CUSTOMERID ORDERDATEWHERE ORDERDT EQ '1996/07/08'END

FOC2590 - AGGREGATION NOT DONE FOR THE FOLLOWING REASON: FOC2594 - 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" = '19960708');

ORDERID EMPLOYEEID CUSTOMERID ORDERDATE ------- ---------- ---------- --------- 10250 4 HANAR 1996/07/08 00:00:00.000 10251 3 VICTE 1996/07/08 00:00:00.000

FOCUS To SQL DeMystified – DATE Conditions

Page 35: 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 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

Page 36: 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 36

FOCUS To SQL DeMystified - Review

SQL Overview SQL Traces Verb Objects Sorting Record Selection Defining Fields Combining Files

Page 37: 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 37

Thanks for Coming

FOCUS To SQL DeMystified – Questions??