• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 176
  • Last Modified:

Trying to perform SQL query but getting too many results

Hi all,

In our casino database I am trying to pull who played, what slot number, and how much coinin they played between a specific date range.  For some reason I am getting over 100,000 results and my brain is fried trying to figure out what I am doing wrong.

I attached the code below and what I am attempting to do is a result similar to my example here:

  AuditDate
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
  AuditDate
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
  AuditDate
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin
                PlayerID          SlotNumber         Coinin

The coinin would be total sums. I also realise in QA that the results will not necessarily be grouped like the above but I can use the query in Crystal Reports as a command and group it that way then.

Thanks

Use WinOasis
IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id = object_id(N'[tempdb]..[#slotsinfo]')) DROP TABLE #slotsinfo
create table 	#slotsinfo
(
		auditdate	datetime,
		slotnumber	int,
		slotmast_id	int,
		meta_id		int,
		elecCoinIn	money
)
 
insert into 	#slotsinfo 	
		(	auditdate,
			slotnumber,
			slotmast_id,
			meta_id,
			elecCoinIn
		 )
select 		b.auditdate,
		a.slotnumber,
		b.slotmast_id,
		c.meta_id,
		sum(b.eleccoinin)
from 		cds_slotmast A(nolock)
inner join	bb_revenue B (nolock) on a.slotmast_id = b.slotmast_id
inner join	cds_statdetail C (nolock) on c.slotnumber = a.slotnumber
where 		b.auditdate 
			between '2006-07-01 00:00:00.000' and getdate()
		and b.period_id = '4'
		and a.active = 'Y'
		and a.currentrevision = 'Y'
		and a.slotnumber 
			between '252' and '254'
GROUP BY	b.auditdate, a.SlotNumber, b.slotmast_id, c.meta_id
 
-- remarked out have to manually run it for debug purposes
--select * from #slotsinfo (nolock) order by meta_id, auditdate

Open in new window

0
smyers051972
Asked:
smyers051972
  • 2
1 Solution
 
chapmandewCommented:
do you need to group by b.slotmast_id and c.meta_id

also, what value is returning for the auditdate?  You may need to format it.  
0
 
smyers051972Author Commented:


Where I run into the biggest problems is when I try to figure out the coin in total per player id (meta_id) by day per slot machine.  I figure there should be 3 results per slot machine per day, I am going back just over 700 days I think.  So if I had about 2500 results or so that wouldnt be too bad, I am getting over 200,000 results!! =)


The only thing I really care to do is get the total coinin per player itemized by slot machine number per day.

I hope that helps I confused myself writing this one LOL
0
 
nmcdermaidCommented:
I suggest you pick one player and one day and filter on that and look at the data. You'll probably find there's lots and lots of meta_id's for that player/day and thats where your problem is - don't group by that.
0
 
smyers051972Author Commented:
Resolved

Thanks!
0

Featured Post

Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now