Click here to Skip to main content
15,885,782 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Im having a problem in joining and grouping two table. Im using ms sql server 2005 express .



I also tried GROUP BY otd.task,otd.date_request,ot.approved_by but it gives me this error:

SQL
Column 'otd.userid' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


Thank you in advance!
Posted
Updated 16-Sep-13 13:55pm
v2
Comments
Dholakiya Ankit 16-Sep-13 23:31pm    
otd.userid is not in a group by clause add that one in the seleted list

I think you need to add date_request into the join criteria, otherwise your join does not generate unique results:

SQL
SELECT otd.userid,otd.task,otd.date_request,ot.approved_by 
FROM otd INNER JOIN ot ON otd.userid = ot.requested_by AND otd.date_request = ot.date_request 
WHERE otd.userid ='xxx' 
AND CONVERT(varchar,otd.date_request,101) BETWEEN '09/10/2013' AND '09/11/2013' 
AND ot.status ='A'
ORDER BY otd.date_request,ot.date_request ASC
 
Share this answer
 
You can also use distinct

SELECT distinct otd.userid,otd.task,otd.date_request,ot.approved_by 
FROM otd INNER JOIN ot ON otd.userid = ot.requested_by
WHERE otd.userid ='xxx' 
AND CONVERT(varchar,otd.date_request,101) BETWEEN '09/10/2013' AND '09/11/2013' 
AND ot.status ='A'
ORDER BY otd.date_request,ot.date_request ASC
 
Share this answer
 
Comments
chaau 12-Sep-13 0:38am    
distinct will produce the same result. Have a look at date_request
Try this....


select otd.userid,otd.task,otd.date_request,ot.apporved_by from otd left join ot on otd.userid=ot.requested_by  where otd.userid='xxx' and ot.date_request=otd.date_request  order by apporved_by 
 
Share this answer
 
Comments
Member 9848727 12-Sep-13 12:45pm    
SELECT
otd.userid,
otd.task,
otd.date_request,
ot.approved_by
FROM
otd
INNER JOIN
ot ON otd.userid = ot.requested_by
and otd.date_request = ot.date_request
WHERE
otd.userid ='xxx'
AND CONVERT(varchar,otd.date_request,101) BETWEEN '09/10/2013' AND '09/11/2013'
AND ot.status ='A'
ORDER BY otd.date_request,ot.date_request ASC

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900