` Sum Calculations in select statement and filtering based on value (Andy Stapleton) - Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Icetips Article

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

SQL Related Articles: Sum Calculations in select statement and filtering based on value
2003-02-05 -- Andy Stapleton
 
Newsgroups: TopSpeed.Products.Drivers Let me take a stab at it... SELECT F.PayerID, CAST(F.LastName + ', ' + F.FirstName AS VARCHAR(52)) AS 'Family Name', SUM(CASE WHEN L.TType = 'Charge' THEN L.Amount END) AS Charges, SUM(CASE WHEN L.TType = 'Credit' THEN L.Amount END) AS Credits, SUM(CASE WHEN L.TType = 'Payment' THEN L.Amount END) AS Payments, SUM(CASE WHEN L.TType = 'Charge' THEN L.Amount WHEN L.TType = 'Credit' THEN 0 - L.Amount WHEN L.TType = 'Payment' THEN 0 - L.Amount END) AS BalanceDue FROM Ledger AS L, Family AS F WHERE F.PayerID = L.PayerID GROUP BY F.LastName, F.FirstName, F.PayerID HAVING SUM(CASE WHEN L.TType = 'Charge' THEN L.Amount WHEN L.TType = 'Credit' THEN 0 - L.Amount WHEN L.TType = 'Payment' THEN 0 - L.Amount END) > 10.00 Have you tried the above? -- Andy <> Stapleton CIO DB|Wired.com / (ccs) Cowboy Computing Solutions www.dbwired.com Web and Clarionet hosting www.ccscowboy.com CCS SQL templates www.Paywire.com ACH / Credit Card payment processing "Ben Kim (Vertical Dimensions, Inc.)" wrote in message news:3e4147d8$1@news.softvelocity.com... > Hello all, > > I am trying to program a sql-list that shows: > > Payer ID Family Name Charges Credits Payments Balance Due > > Every thing works as expected with one exception. If the user only wants to > see all balances over lets say $10, how do I build that into the statement > below without getting an error: ERROR CONVERTING DATA TYPE VARCHAR TO > NUMERIC > > SQL Statement: > -------------------------------------------------------------------------- -- > --- > SELECT > F.PayerID, > CAST(F.LastName + ', ' + F.FirstName AS VARCHAR(52)) AS 'Family > Name', > SUM(CASE WHEN L.TType = 'Charge' THEN L.Amount END) AS Charges, > SUM(CASE WHEN L.TType = 'Credit' THEN L.Amount END) AS Credits, > SUM(CASE WHEN L.TType = 'Payment' THEN L.Amount END) AS Payments, > SUM(CASE WHEN L.TType = 'Charge' THEN L.Amount WHEN L.TType = > 'Credit' THEN 0 - L.Amount WHEN L.TType = 'Payment' THEN 0 - L.Amount END) > AS 'BalanceDue' > FROM Ledger AS L, Family AS F > WHERE F.PayerID = L.PayerID > GROUP BY F.LastName, F.FirstName, F.PayerID > HAVING CAST('BalanceDue' AS DECIMAL(19, 2)) > > 10.00 <---tried BD > 10.00, CONVERT(DECIMAL...) > -------------------------------------------------------------------------- -- > - > > I have tried CAST and CONVERT and nothing at all but HAVING 'BalanceDue' > > 10.00 but get the same error. If I remove the HAVING clause it works like a > champ. > > Thanks Ahead Of Time! > > Ben Kim > Using C5.5EE Latest Patches (ABC/Legacy 32-bit) > MS-SQL 2K Enterprise Edition > Windows XP Pro > >


Today is November 21, 2024, 3:35 am
This article has been viewed 35232 times.
Google search has resulted in 3112 hits on this article since January 25, 2004.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: