pdFromDt = DTOT(ThisForm.txtdFromDt.VALUE) TEXT TO lcSQL TEXTMERGE NOSHOW SELECT 1 AS iOrder, mA.iID AS iPID, mA.iID as iGID, '<<pdFromDt>>' AS tDt, mA.iID AS iAcctID, CASE WHEN mA.cDrCr = 'DR' AND mA.bOpBal > 0 THEN mA.bOpBal ELSE CASE WHEN mA.cDrCr = 'CR' AND mA.bOpBal < 0 THEN -mA.bOpBal ELSE CAST(0 AS DOUBLE PRECISION) END END AS bDebit, CASE WHEN mA.cDrCr = 'CR' AND mA.bOpBal > 0 THEN mA.bOpBal ELSE CASE WHEN mA.cDrCr = 'DR' AND mA.bOpBal < 0 THEN -mA.bOpBal ELSE CAST(0 AS DOUBLE PRECISION) END END AS bCredit, 'O' AS cSource FROM mAccounts mA ENDTEXT IF NOT THIS.AllRecordsSelected() TEXT TO lcSQL ADDITIVE TEXTMERGE NOSHOW WHERE mA.iID IN (SELECT ID FROM AccountsSelected WHERE TRIM(JobID) = '<<THIS.cJobID>>') ENDTEXT ENDIF MESSAGEBOX(lcSQL) SQLPT(lcSQL, "curLedger") SELECT curLedger BROWSE NORMSQLPT() is a wrapper for SQLEXEC(). I have also tried to send the datetime value using a ? but that raises and error.