Welcome to the SQLitening support forums!
Quote from: Fredrick Ughimi on December 11, 2019, 07:17:56 AM...
Aside: Is it possible to get the:
1 = near ""WITH": syntax error
on one system and not get it on another system? One of my clients had this error, but it worked fine on my system.
#COMPILE EXE
#DIM ALL
#INCLUDE "sqlitening.inc"
FUNCTION PBMAIN () AS LONG
slopen "HospitalProDB.db3","C"
LOCAL sData() AS STRING
slselary " select HospitalNo,SUM(Amount-Discount), 'tblBill' from tblBill group by HospitalNo" +_
" UNION" +_
" select HospitalNo,SUM(SellingPrice*Quantity-Discount),'tblCashSales' from tblCashSales group by HospitalNo" +_
" UNION" +_
" select HospitalNo,SUM(Amount), 'tblPayments' from tblPayments group by HospitalNo",sData()
slselary " select HospitalNo,SUM(Amount-Discount), 'tblBill' from tblBill group by HospitalNo UNION " +_
" select HospitalNo,SUM(SellingPrice * Quantity - Discount),'tblCashSales' from tblCashSales group by HospitalNo UNION " +_
" select HospitalNo,SUM(Amount), 'tblPayments' from tblPayments group by HospitalNo",sData()
'without temp table
LOCAL x,linecounter AS LONG
DIM hospital(999) AS LONG
DIM sArray(999) AS STRING
FOR x = 1 TO UBOUND(sdata,2)
hospital(VAL(sdata(1,x))) += VAL(sdata(2,x)) 'combine amounts in column2
NEXT
sArray(0) = "Hospital Amount" 'optional heading
FOR x = 1 TO UBOUND(hospital) 'hospital 1 to ?
IF hospital(x) THEN 'if hospital <> 0
INCR linecounter
sArray(linecounter) = USING$("#&##.##",x,$TAB,hospital(x)*.01)
'sArray(linecounter) = FORMAT$(x) + $TAB + USINg$("##.##",hospital(x)*.01)
END IF
NEXT
REDIM PRESERVE sArray(linecounter)
? JOIN$(sArray(),$CR),,"Balances"
END FUNCTION
#COMPILE EXE
#DIM ALL
#INCLUDE "sqlitening.inc"
#INCLUDE "ddoc_p32.inc"
'DDOC
' Needed Color Constants (Vb compatible)
'---------------------------------------------------------------------------
%vbBlack = &H0&
%vbRed = &HFF&
%vbGreen = &HFF00&
%vbYellow = &HFFFF&
%vbBlue = &HFF0000
%vbMagenta = &HFF00FF
%vbCyan = &HFFFF00
%vbWhite = &HFFFFFF
%vbGrey = &HC0C0C0
%LIGHT_SHADE = &HE0E0E0
FUNCTION PBMAIN () AS LONG
slOpen ("HospitalProDB.db3", "C")
ReportDebtors
END FUNCTION
FUNCTION PBDate(sDate AS STRING) AS STRING
'MM-dd-yyyy to dd-MM-yyyy
FUNCTION = MID$(sDate,4,2) & "-" & MID$(sDate,1,2) & "-" & MID$(sDate,7,4)
END FUNCTION
FUNCTION NigeriaDate(sDate AS STRING) AS STRING
'yyyy-MM-dd to dd-MM-yyyy
FUNCTION = MID$(sDate,9,2) & "-" & MID$(sDate,6,2) & "-" & MID$(sDate,1,4)
END FUNCTION
FUNCTION SQLiteDate(sDate AS STRING) AS STRING
'From dd-MM-yyyy To yyyy-MM-dd
FUNCTION = MID$(sDate,7,4) & "-" & MID$(sDate,4,2) & "-" & MID$(sDate,1,2)
END FUNCTION
FUNCTION ReportDebtors() AS LONG
LOCAL dbHandle&, LineSpacing!,iHandle%,Row!,TopMargin!,PageSize!,PageNumber&
LOCAL detailline AS ASCIIZ * 200
LOCAL SNo AS LONG
LOCAL lTotalRecords&
LOCAL dTotalAmount AS DOUBLE
LOCAL dNetAmount AS DOUBLE
LOCAL s AS STRING
LOCAL dTotalDebts, dTotalBill, dTotalPayment AS DOUBLE
LineSpacing = .2
TopMargin = .5
PAGESIZE = 10
ihandle% = dpStartDoc(0,"Mega-Net HospitalPro - Debtors Report","",%DDOC_INCH, %DDOC_PAPER_A4, %DDOC_PORTRAIT, %DDOC_SYSTEM_DEFAULT, %DDOC_BIN_AUTO OR %DDOC_ALLOWSMTP OR %DDOC_ALLOWSAVE OR %DDOC_ZOOMFIT)
IF ihandle < 1 THEN
MSGBOX "Could not StartDoc. Error number" + STR$(Ihandle)
GOTO EndProgram
END IF
dpSetTabs iHandle, "L.5W1 L1.0W1 L2.5W3 L5.5W1 L6.5W1 L7.5W1"
ROW = PAGESIZE 'force new heading
slSEL " select HospitalNo,SUM(Amount-Discount), 'tblBill' from tblBill group by HospitalNo" +_
" UNION" +_
" select HospitalNo,SUM(SellingPrice*Quantity-Discount),'tblCashSales' from tblCashSales group by HospitalNo" +_
" UNION" +_
" select HospitalNo,SUM(Amount), 'tblPayments' from tblPayments group by HospitalNo"
slSEL " select HospitalNo,SUM(Amount-Discount), 'tblBill' from tblBill group by HospitalNo UNION " +_
" select HospitalNo,SUM(SellingPrice * Quantity - Discount),'tblCashSales' from tblCashSales group by HospitalNo UNION " +_
" select HospitalNo,SUM(Amount), 'tblPayments' from tblPayments group by HospitalNo"
DO WHILE slGetRow()
IF ROW => PAGESIZE THEN
IF PageNumber THEN 'If first page don't need a new page
dpNewPage iHandle%, %ddoc_PAPER_A4, %DDOC_PORTRAIT, %DDOC_BIN_AUTO
END IF
INCR PageNumber
LOCAL hjpg AS LONG
''hjpg = dpAddGraphic(ihandle%, VD_App.Path & "Logo.jpg")
IF hjpg THEN
dpDrawGraphic ihandle%, hjpg,3.5,.2,2,1
END IF
dpText iHandle%, .5,TopMargin, %DDOC_Left,"Page: "+ STR$(PageNumber)+""
'dpText iHandle%, .5,TopMargin + .2, %DDOC_Left,"Total Records: "+ Str$(lTotalRecords&)+""
dpText iHandle%, 6,TopMargin, %DDOC_Left,"Date: "+ PBDate(DATE$)+""
dpText iHandle%, 6,TopMargin +.2, %DDOC_Left,"Time: "+ TIME$+""
ROW =TopMargin + LineSpacing * 4
dpFont ihandle%, %DDOC_FONTNORMAL + %DDOC_FONTBOLD, 12, %vbGreen, "Arial"
dpText ihandle, 4.25, 1.1, %DDOC_CENTER, "Ameso Hospital" ''& gName
dpFont ihandle%, %DDOC_FONTNORMAL + %DDOC_FONTBOLD, 12, %vbRed, "Arial"
dpText IHandle%, 4.25, 1.4, %DDOC_CENTER, "Ogudu, Lagos" ''& gAddress
dpFont ihandle%, %DDOC_FONTNORMAL + %DDOC_FONTUNDERLINE + %DDOC_FONTBOLD, 12, %vbBlack, "Arial"
dpText IHandle%, 4.25, 1.7, %DDOC_CENTER, "Debtors Report"
'dpText IHandle%, 6.25, 2.0, %DDOC_CENTER, "Date Range: " & sFrom & " To " & sTo
'dpText IHandle%, .5, 2.3, %DDOC_Left, "Total Debts: " & Format$(dTotalDebts, "#,.00")
dpFont ihandle%, %DDOC_FONTNORMAL + %DDOC_FONTUNDERLINE + %DDOC_FONTBOLD, 9, %vbBlack, "Arial"
dpTabText iHandle%, ROW + 0.9, "SNo" + $TAB + "HospitalNo" + $TAB + "Surname" + $TAB + "Othernames" + $TAB + "Balance"
dpFont ihandle%, %DDOC_FONTNORMAL, 8, %vbBlack, "San Serif"
ROW = ROW + LineSpacing * 2
END IF
INCR SNo
DetailLine$ = _
STR$(SNo) + $TAB + _
slFN("HospitalNo") + $TAB + _
slFN("Amount")
dpTabText iHandle%, ROW + 0.7, DetailLine
ROW = ROW + LineSpacing 'increment line counter
LOOP
dpEndDoc iHandle%, %DDOC_END_VIEW + %DDOC_END_PRINT
EndProgram:
END FUNCTION
s= "WITH"
s+=" TempT1(TT1HospitalNo,Surname, Othernames,TT1Total) AS (SELECT HospitalNo, Surname, Othernames, Amount - Discount"
s+=" FROM tblBill),"
s+=" TempT2(TT2HospitalNo,Name,TT2Total) AS (SELECT tblCashSales.HospitalNo, Name, Quantity * SellingPrice - Discount"
s+=" FROM tblCashSales),"
s+=" SumT1( ST1HospitalNo, ST1Total) AS (SELECT TT1HospitalNo, TOTAL( TT1Total)"
s+=" FROM TempT1 GROUP BY TT1HospitalNo),"
s+=" SumT2( ST2HospitalNo, ST2Total) AS (SELECT TT2HospitalNo, TOTAL( TT2Total)"
s+=" FROM TempT2 GROUP BY TT2HospitalNo),"
s+=" SumT3(ST3HospitalNo, Surname, Othernames, ST3Total) AS (SELECT tblPayments.HospitalNo, Surname, Othernames, TOTAL(Amount)"
s+=" FROM tblPayments GROUP BY tblPayments.HospitalNo)"
s+=" SELECT tblBioData.HospitalNo, tblBioData.Surname, tblBioData.Othernames, ST1Total + ST2Total - ST3Total"
s+=" FROM tblBioData"
s+=" LEFT OUTER JOIN SumT1 ON tblBioData.HospitalNo = ST1HospitalNo"
s+=" LEFT OUTER JOIN SumT2 ON tblBioData.HospitalNo = ST2HospitalNo"
s+=" LEFT OUTER JOIN SumT3 ON tblBioData.HospitalNo = ST3HospitalNo"
s+=" WHERE ST1Total + ST2Total > ST3Total"
Quote from: Fredrick Ughimi on December 10, 2019, 01:56:25 PM...
Yes, there is a master table I called tblBioData which contains the HospitalNo, Surname, Othernames, etc.
...
s= "WITH"
s+=" TempT1(TT1Surname,TT1Total) AS (SELECT Surname1, Amount1 - Discount"
s+=" FROM T1),"
s+=" TempT2(TT2Surname,TT2Total) AS (SELECT Surname2, Quantity * SellingPrice - Discount"
s+=" FROM T2),"
s+=" SumT1( ST1Surname, ST1Total) AS (SELECT TT1Surname, TOTAL( TT1Total)"
s+=" FROM TempT1 GROUP BY TT1Surname),"
s+=" SumT2( ST2Surname, ST2Total) AS (SELECT TT2Surname, TOTAL( TT2Total)"
s+=" FROM TempT2 GROUP BY TT2Surname),"
s+=" SumT3( ST3Surname, ST3Total) AS (SELECT Surname3, TOTAL( Amount3)"
s+=" FROM T3 GROUP BY Surname3)"
s+=" SELECT ST3Surname, ST1Total + ST2Total - ST3Total"
s+=" FROM tblBioData"
s+=" LEFT OUTER JOIN SumT1 ON tblBioData.Surname = ST1Surname"
s+=" LEFT OUTER JOIN SumT2 ON tblBioData.Surname = ST2Surname"
s+=" LEFT OUTER JOIN SumT3 ON tblBioData.Surname = ST3Surname"
s+=" WHERE ST1Total + ST2Total > ST3Total"