Skip to main content
Skip table of contents

Providex SQL Syntax

SQL Syntax for the ETL+ Extract SQL Statement panel with data (especially dates) from Sage 100 Providex data sources.

See also Sage 100 Technical Details

When possible use the T_SQL column on the ETL+ Design Page instead of the ETL+ Extract SQL Statement panel.

This page is only for customizing SQL on the ETL+ Extract SQL Statement Panel.

See Sage 100 Providex Dates for processing problematic dates.

Providex SQL Examples

See more SQL examples at: Sage 100 Providex SQL Syntax for ETL+ Extract SQL Statement panel,
https://manual.pvxplus.com/PXPLUS/odbc/using_odbc_driver/example_sql.htm (Sage documentation)

Examples of SQL statements that Join & Extract a Date Field from “Parent” Table for Load Replace

AR Invoice History

SQL
SELECT  H.InvoiceDate AS InvoiceDate
FROM
   { IJ AR_InvoiceHistoryHeader H INNER JOIN AR_InvoiceHistoryDetail  D ON
     H.HeaderSeqNo = D.HeaderSeqNo AND H.InvoiceNo = D.InvoiceNo }

SO History Header & Detail

SQL
SELECT  H.OrderDate as OrderDate
FROM
      {IJ  SO_SalesOrderHistoryDetail D INNER JOIN
      SO_SalesOrderHistoryHeader H ON D.SalesOrderNo = H.SalesOrderNo }

Table Join + Filter

SQL
SELECT D.DocDate
FROM { IJ  IM_ItemWarehouse D INNER JOIN CI_Item I ON D.ItemCode = I.ItemCode }
WHERE D.DocDate >= {d'2018-01-01'}

Double Table Join (JOIN 3 Tables)

SQL
...
FROM  { IJ  (PO_PurchaseOrderDetail D INNER JOIN 
             PO_PurchaseOrderHeader H ON D.PurchaseOrderNo = H.PurchaseOrderNo )
             INNER JOIN CI_Item I ON D.ItemCode = I.ItemCode }

Misc Examples

CODE
-- Examples to remove rows with bad date values
WHERE PostingDate >={d'2018-01-01'}

WHERE InvoiceDate >= {d'1990-01-01'} and InvoiceDueDate >= {d'1990-01-01'}   

-- AP Aging
FROM  
      {IJ AP_OpenInvoice D INNER JOIN
      AP_Vendor V ON D.VendorNo = V.VendorNo }
      WHERE        (D.Balance <> 0)

FROM AP_InvoiceHistoryHeader
   WHERE InvoiceDate >= {d'1990-01-01'} and 
   InvoiceDueDate >= {d'1990-01-01'} and    
   TransactionDate >= {d'1990-01-01'} 

-- AR Aging
FROM   
      { IJ    ( AR_Salesperson S INNER JOIN AR_OpenInvoice D ON S.SalespersonDivisionNo
       = D.SalespersonDivisionNo AND S.SalespersonNo = D.SalespersonNo ) INNER JOIN 
      AR_Customer C ON D.ARDivisionNo = C.ARDivisionNo AND D.CustomerNo =
      C.CustomerNo  }

FROM AR_InvoiceHistoryHeader
   WHERE InvoiceDate >= {d'1990-01-01'} and 
   InvoiceDueDate >= {d'1990-01-01'} and    
   TransactionDate >= {d'1990-01-01'}  and 
   OrderDate >= {d'1990-01-01'}

--AR Inv Hist Header & Detail:

   D.WarehouseCode,
   H.InvoiceDate AS InvoiceDate
FROM 
   { IJ AR_InvoiceHistoryHeader H INNER JOIN AR_InvoiceHistoryDetail  D ON 
     H.HeaderSeqNo = D.HeaderSeqNo AND H.InvoiceNo = D.InvoiceNo } 
     WHERE H.InvoiceDate>={d'2018-01-01'}

-- PO Header & Detail
FROM  
      { IJ  (PO_PurchaseOrderDetail D INNER JOIN 
      PO_PurchaseOrderHeader H ON D.PurchaseOrderNo = H.PurchaseOrderNo ) 
      INNER JOIN CI_Item I ON D.ItemCode = I.ItemCode }

-- SO Header & Detail
FROM 
      {IJ  SO_SalesOrderDetail D INNER JOIN
      SO_SalesOrderHeader H ON D.SalesOrderNo = H.SalesOrderNo }

Dates and Date Fields

Converting Date to String (to deal with dirty data, invalid dates)

SQL
... {fn convert(OrderDate,SQL_VARCHAR)} as OrderDate

Date Literals / Constants

CODE
...  WHERE InvoiceDate >= {d'1990-01-01'}

Related Pages

Providex Documentation

Providex ODBC References

Reading PxPlus Language Reference Documentation

  1. Open http://manual.pvxplus.com/

  2. Select PxPlus SQL ODBC > Using the PxPlus SQL ODBC Driver

  3. Select https://manual.pvxplus.com/PXPLUS/odbc/using_odbc_driver/scalar_functions.htm for String, Numeric, Time and Date or System functions

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.