Thursday, March 10, 2011

Grouping JOIN Clauses

EffiProz 1.6 will fully support Parenthesis Grouped Join Clauses.
Download EffiProz 1.6 beta from http://www.effiproz.com/downloads/EffiProz_1_6_4087_16609_beta.zip

A sample query with Parenthesis Grouped Join Clause on Northwind database,
SELECT "Invoices2" AS SELECT "Orders"."ShipName", "Orders"."ShipAddress", "Orders"."ShipCity", "Orders"."ShipRegion", "Orders"."ShipPostalCode", 
 "Orders"."ShipCountry", "Orders"."CustomerID", "Customers"."CompanyName" AS "CustomerName", "Customers"."Address", "Customers"."City", 
 "Customers"."Region", "Customers"."PostalCode", "Customers"."Country", 
 ("FirstName" + ' ' + "LastName") AS "Salesperson", 
 "Orders"."OrderID", "Orders"."OrderDate", "Orders"."RequiredDate", "Orders"."ShippedDate", "Shippers"."CompanyName" As "ShipperName", 
 "Order Details"."ProductID", "Products"."ProductName", "Order Details"."UnitPrice", "Order Details"."Quantity", 
 "Order Details"."Discount", 
 (CONVERT(("Order Details"."UnitPrice"*"Quantity"*(1-"Discount")/100),decimal)*100) AS "ExtendedPrice", "Orders"."Freight"
 FROM  "Shippers" INNER JOIN 
 ("Products" INNER JOIN 
 (
 ("Employees" INNER JOIN 
 ("Customers" INNER JOIN "Orders" ON "Customers"."CustomerID" = "Orders"."CustomerID") 
 ON "Employees"."EmployeeID" = "Orders"."EmployeeID") 
 INNER JOIN "Order Details" ON "Orders"."OrderID" = "Order Details"."OrderID") 
 ON "Products"."ProductID" = "Order Details"."ProductID") 
 ON "Shippers"."ShipperID" = "Orders"."ShipVia";
 

Which is equivalent to the following query,

SELECT "Invoices" AS
 SELECT "Orders"."ShipName", "Orders"."ShipAddress", "Orders"."ShipCity", "Orders"."ShipRegion", "Orders"."ShipPostalCode", 
 "Orders"."ShipCountry", "Orders"."CustomerID", "Customers"."CompanyName" AS "CustomerName", "Customers"."Address", "Customers"."City", 
 "Customers"."Region", "Customers"."PostalCode", "Customers"."Country", 
 ("FirstName" + ' ' + "LastName") AS "Salesperson", 
 "Orders"."OrderID", "Orders"."OrderDate", "Orders"."RequiredDate", "Orders"."ShippedDate", "Shippers"."CompanyName" As "ShipperName", 
 "Order Details"."ProductID", "Products"."ProductName", "Order Details"."UnitPrice", "Order Details"."Quantity", 
 "Order Details"."Discount", 
 (CONVERT(("Order Details"."UnitPrice"*"Quantity"*(1-"Discount")/100),decimal)*100) AS "ExtendedPrice", "Orders"."Freight"
 FROM "Shippers" ,"Products","Employees","Customers","Orders","Order Details"
 WHERE
 "Shippers"."ShipperID" = "Orders"."ShipVia" 
 AND "Products"."ProductID" = "Order Details"."ProductID"
 AND "Orders"."OrderID" = "Order Details"."OrderID"
 AND "Customers"."CustomerID" = "Orders"."CustomerID"
 AND "Employees"."EmployeeID" = "Orders"."EmployeeID";


No comments:

Post a Comment