For example:
In the first result below, there are three transactions with userid C205167665, C205170740, CU05166287 and there is no matching transactions in the second result. so we cannot update these three transaction.
for the last transaction in the first result set (userid C205007890). there is a transaction in the second result set with the same userid. However, the time in the first result is older than the time in the second result, so we cannot update this either.
handidplayerHandleAGSGameIDUserIDNumberOfBetsTotalBetsWinPJWints_startedts
8584629858284021823034616249154877510448510253C2051676651300.0000.00002012-11-15 01:36:07.7332012-11-15 01:36:07.717
8603229858215982452307775577246707010452210251C20517074015.0000.00002012-11-15 01:36:19.0932012-11-15 01:36:19.077
8589729858245965041549244571452771310461710251CU0516628711.0000.00002012-11-15 03:22:29.8602012-11-15 03:22:29.860
8589829858241849673723551302415533010461810253C20500789015.0000.00002012-11-15 03:23:03.9072012-11-15 03:23:03.907
(4 row(s) affected)
UserIDTransactionTimeAmountBalanceBeforeAdjustmentReasonForAdjustmentOperatorIDTransactionNumberCategoryID
C2050923232012-11-18 16:25:00.49710.0000147.4000ADJ AGSGameID=10253 handid=0 ph=0 txnid=184904079770618
C2051703702012-11-17 12:25:00.7733.000010.5100ADJ AGSGameID=10253 handid=0 ph=0 txnid=181873079758218
C8047500042012-11-16 19:25:00.493200.0000.0800ADJ AGSGameID=10251 handid=0 ph=0 txnid=179018079748518
C2050378752012-11-16 10:25:01.36753.0000913.9400ADJ AGSGameID=10251 handid=0 ph=0 txnid=177712079740318
CU051706322012-11-15 14:25:00.9138.0000317.0000ADJ AGSGameID=10251 handid=0 ph=0 txnid=175586079716618
C2050078902012-11-15 02:25:00.2172.0000431.7500ADJ AGSGameID=10253 handid=0 ph=0 txnid=173235079700618
CU051711892012-11-14 18:25:00.8635.0000521.0000ADJ AGSGameID=10251 handid=0 ph=0 txnid=172258079699618
CU051483372012-11-13 18:25:02.0101.000063.0000ADJ AGSGameID=10251 handid=0 ph=0 txnid=167437079691318
CU051483372012-11-13 18:25:01.9331.000062.0000ADJ AGSGameID=10251 handid=0 ph=0 txnid=167436079691218
CU051692782012-11-13 14:24:59.803150.00001096.0000ADJ AGSGameID=10251 handid=0 ph=0 txnid=165988079690218
(10 row(s) affected)
tai985 (11/19/2012)
Sorry actually you are right. I forgot one important detail.here is exactly what I do.
first I run this query:
select *
from AGS_Hands_InProcess nolock
where WIn is NULL -- unfinished games
and ts_started<dateadd(hh,-1,getdate()) -- older than 1 hour
Order by ts_started
result1:
handidplayerHandleAGSGameIDUserIDNumberOfBetsTotalBetsWinPJWints_startedts
9200729858253850978580021871259000911129610253C205092323110.0000.00002012-11-18 15:14:03.2772012-11-18 15:14:03.277
then I run this 2nd query:
select top 100 * from UserBalanceAdjustments nolock
where ReasonForAdjustment like 'ADJ AGS%'
and transactiontime>dateadd(ww,-1,getdate()) -- for efficiency, limit the time window, e.g. a week
order by transactiontime desc
result2:
UserIDTransactionTimeAmountBalanceBeforeAdjustmentReasonForAdjustmentOperatorIDTransactionNumberCategoryID
C2050923232012-11-18 16:25:00.49710.0000147.4000ADJ AGSGameID=10253 handid=0 ph=0 txnid=184904079770618
Before I can run the update below. I need to make sure that the userid "C205092323" exist on the result of the second query and the ts_started in the first result "2012-11-18 16:25:00.497" is prior to the transaction time in the second result "2012-11-18 16:25:00.497". Sometimes the transaction doesn't exist in the second result, but it does exist on the first result which mean we don't need to do the update. Another scenario is there are two transaction in the first result for the same userid, but there is only one transaction in the second result. which means we need to compare the transaction time to make sure we update the correct transaction. Another issue is the AGSGameID is different each time, sometimes it is 10253, 10251, or 10252. So these are the reason why we cannot do it all at once.
UPDATE AGS_Hands_InProcess SET
Win= 5, -- the value from the matching Adjustement
ts= getdate() -- the timestamp of last action on this hand
WHERE HandID= 92007
and UserID= 'C205092323'
and AGSGameID= 10253
and Win is NULL -- protection.
Lowell (11/14/2012)
with what you've shown so far, you can certainly do them all at once; so you've left some important details out of the question at hand.it's probably more a question of comfort and familiarity of the code, rather than "the boss says it cannot be done.
i guess you should show all the work you are doing...what are you doing between the copy / paste of the results, and the manual construction of a second command?
if nothing, then you've got the option to update all of them like i stated.