Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
jtrapat1
Starting Member
43 Posts |
Posted - 2010-09-01 : 10:09:45
|
Im using a query in sql server to display a grid of gasoline readings during a weekly period.I am trying to go across the columns from left to right and subtract starting and ending values of gallons to get a total of gallons pumped.Is there a way to do this with a pivot table query?Or, should I switch from this attempt to a UNION of the table to itself?Below is the query and here is the values I would like to display:The tough part is carrying down the previous day's end reading to become the next days starting reading. Desired Output:date starting gal delivered gal pumped inv. end inv.7/1/2010 3184.00 0.00 705.00 2479.00 2557.957/2/2010 2557.95 5999.00 802.00 7754.95 7789.087/3/2010 7789.08 0.00 549.00 7240.08 7238.09 ThanksJohn SELECT * FROM ( SELECT A.[TANK_ID_FW] , A.[TRANSACTION_DATE_FW],-- + 1 AS tran_date_fw, RIGHT(A.[TANK_ID_FW], 1) AS Tank, -- (A.[TANK_GALLONS_READING_FW]-C.[QUANTITY_RECEIVED_FW]) AS diff, A.[TANK_GALLONS_READING_FW], A.[TANK_INCHES_READING_FW] , CASE WHEN SUBSTRING(A.TANK_ID_FW,7,3)='B5-' THEN 'B5' WHEN SUBSTRING(A.TANK_ID_FW,7,3)='E85' THEN 'E85' WHEN SUBSTRING(A.TANK_ID_FW,7,3)='UL-' THEN 'UNLEADED' END AS Type, C.[TRANSACTION_TYPE_FW] , C.[QUANTITY_RECEIVED_FW] FROM [USER_DEFINED56_FW] A JOIN [FUEL_PUMPS_FW] B ON A.TANK_ID_FW=B.TANK_ID_FW JOIN FUEL_PRICES_FW C ON A.[TANK_ID_FW]=C.TANK_ID_FWWHERE (A.TRANSACTION_DATE_FW BETWEEN '2010-01-29' AND '2010-12-12') --AND RIGHT(A.[TANK_ID_FW], 1)=1 --AND SUBSTRING(A.[TANK_ID_FW],7,3)='UL-' --AND A.[ARCHIVE_STATUS_FW]='N' --ORDER BY A.TRANSACTION_DATE_FW ) DataTable PIVOT ( SUM([TANK_GALLONS_READING_FW]) FOR [TANK_ID_FW] IN ([19999-E85-3],[19999-B5-1],[19999-UL-2]) ) PivotTable |
|
Transact Charlie
Master Smack Fu Yak Hacker
3451 Posts |
Posted - 2010-09-01 : 10:46:53
|
Just some formatting for anyone else (wrap any sql you post in <square bracket>code<square bracket> tags.SELECT * FROM ( SELECT A.[TANK_ID_FW] , A.[TRANSACTION_DATE_FW],-- + 1 AS tran_date_fw, RIGHT(A.[TANK_ID_FW], 1) AS Tank, -- (A.[TANK_GALLONS_READING_FW]-C.[QUANTITY_RECEIVED_FW]) AS diff, A.[TANK_GALLONS_READING_FW], A.[TANK_INCHES_READING_FW] , CASE WHEN SUBSTRING(A.TANK_ID_FW,7,3)='B5-' THEN 'B5' WHEN SUBSTRING(A.TANK_ID_FW,7,3)='E85' THEN 'E85' WHEN SUBSTRING(A.TANK_ID_FW,7,3)='UL-' THEN 'UNLEADED' END AS Type, C.[TRANSACTION_TYPE_FW] , C.[QUANTITY_RECEIVED_FW] FROM [USER_DEFINED56_FW] A JOIN [FUEL_PUMPS_FW] B ON A.TANK_ID_FW=B.TANK_ID_FW JOIN FUEL_PRICES_FW C ON A.[TANK_ID_FW]=C.TANK_ID_FWWHERE (A.TRANSACTION_DATE_FW BETWEEN '2010-01-29' AND '2010-12-12') --AND RIGHT(A.[TANK_ID_FW], 1)=1 --AND SUBSTRING(A.[TANK_ID_FW],7,3)='UL-' --AND A.[ARCHIVE_STATUS_FW]='N' --ORDER BY A.TRANSACTION_DATE_FW ) DataTable PIVOT ( SUM([TANK_GALLONS_READING_FW]) FOR [TANK_ID_FW] IN ([19999-E85-3],[19999-B5-1],[19999-UL-2]) ) PivotTable Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION |
|
|
|
|
|
|
|