April 6, 2006 at 10:09 am
I have this query
SELECT cs.Name, COUNT(req.RequestId) AS Total, imp.UserId
FROM dbo.tblRequest req INNER JOIN
dbo.tblImplementer imp ON req.RequestId = imp.RequestId RIGHT OUTER JOIN
dbo.tblChangeStatus cs ON req.ChangeStatusId = cs.ChangeStatusId
GROUP BY cs.Name, imp.UserId
HAVING (imp.UserId = 195)
it returns
Completed 1 195
Open 2 195
I want it to return
Completed 1 195
Open 2 195
April 6, 2006 at 10:11 am
This query returns the data that i need, but does not have the Id filter from tblImplementer.
SELECT cs.Name, COUNT(req.RequestId) AS Total
FROM dbo.tblRequest req RIGHT OUTER JOIN
dbo.tblChangeStatus cs ON req.ChangeStatusId = cs.ChangeStatusId
GROUP BY cs.Name
April 6, 2006 at 10:15 am
I cannot see what your question is. What is returns and what you want look the same to me...
I wasn't born stupid - I had to study.
April 6, 2006 at 10:26 am
On...Let me explain better. The UserId = 195 has 3 records (1 Completed and 2 Open) in the tblRequest table (req). When I run this query below, I get a count of all records in the tblRequest table.
SELECT cs.Name, COUNT(req.RequestId) AS Total
FROM dbo.tblRequest req RIGHT OUTER JOIN
dbo.tblChangeStatus cs ON req.ChangeStatusId = cs.ChangeStatusId
GROUP BY cs.Name
DATA RETURNED
Canceled 0
Completed 2
Hold 0
Open 6
Pending 0
Scheduled 0
The data that I am looking for SHOULD be
Canceled 0
Completed 1
Hold 0
Open 2
Pending 0
Scheduled 0
I have to join the Query on the table tblImplementer
tblImplementer
UserId int
RequestId int
UserRoleId int
tblChangeStatus
ChangeStatusId
ChangeStatusName
Data Example of tblChangeStatus
1 Canceled
2 Completed
3 Hold
4 Open
5 Pending
6 Scheduled
When I run the query below:
SELECT cs.Name, COUNT(req.RequestId) AS Total, dbo.tblImplementer.UserId
FROM dbo.tblRequest req INNER JOIN
dbo.tblImplementer ON req.RequestId = dbo.tblImplementer.RequestId RIGHT OUTER JOIN
dbo.tblChangeStatus cs ON req.ChangeStatusId = cs.ChangeStatusId
GROUP BY cs.Name, dbo.tblImplementer.UserId
HAVING (dbo.tblImplementer.UserId = 195)
I get the following records:
Completed 1
Open 2
BUT I need to return
Canceled 0
Completed 1
Hold 0
Open 2
Pending 0
Scheduled 0
.....as mentioned above
April 6, 2006 at 10:45 am
tblRequest
RequestId
ChangeStatusId
....
....
April 6, 2006 at 1:14 pm
I got it SubSelect
SELECT cs.Name, COUNT(req.RequestId) AS Total
FROM dbo.tblRequest req RIGHT OUTER JOIN (SELECT * FROM tblImplementer WHERE UserID = @ImplementerId) AS
tblImplementer ON req.RequestId = tblImplementer.RequestId RIGHT OUTER JOIN
dbo.tblChangeStatus cs ON req.ChangeStatusId = cs.ChangeStatusId
GROUP BY cs.Name
April 6, 2006 at 1:30 pm
You 'da woman! Sorry, I got caught up at work and could not come back to this..., glad you were able to figure it out. ![]()
(It helps to give tables structures and some data for the next question you may ask...) ![]()
I wasn't born stupid - I had to study.
Viewing 7 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply