Alan Lawhon
lawhonac at hiwaay.net
Sat May 26 13:47:56 CDT 2012
I (sort of) figured out the problem. Solely on a hunch, I decided to comment out all of the code except for the block of statements that handle the 50 percent calculation. (The line with the CONVERT function was the line producing the compile error, so it made sense to isolate on that block of code.) I then ran the code with the CONVERT function still in place to calculate (and display) the "Payment" field. The modified code appears as follows: USE AP GO SELECT InvoiceNumber, VendorName, '50% Payment' AS PaymentType, InvoiceTotal AS [Invoice Total], '$' + CONVERT(varchar, (InvoiceTotal * 0.5), 1) AS Payment FROM Invoices INNER JOIN Vendors ON Invoices.VendorID = Vendors.VendorID WHERE InvoiceTotal BETWEEN 500 AND 10000.00 ORDER BY PaymentType DESC, VendorName, InvoiceNumber Interestingly, this code executed (no compile error) so the CONVERT function worked although the style parameter didn't produce the exact result that the SQL Server documentation indicates. The: '$' + CONVERT(varchar, (InvoiceTotal * 0.5), 1) AS Payment field calculation produced output that looked like $1062.12500 when it should have appeared as: $1,062.13. Maybe I'm a bit confused as to how precision and scale work when dealing with decimal and money data types. It might also be the case that when you have a UNION query, SQL Server doesn't play nice with the CONVERT function. This is nitpicking anyway, so I'm going to let it go and move on to the next topic. Alan C. Lawhon