| Author |
Topic |
|
inou
Starting Member
9 Posts |
Posted - 2012-06-14 : 16:55:23
|
| Please help anyone. I'm learning SQL here. I have 2 tables:Tbl1:Fname Lname MemberIDSmith M 1David N 2Tbl2:MemberID RequestSubmited1 Y2 Y1 Y1 Y2 Y1 YHow can I have the result below?Fname Lname MemberID TotalSubmittedSmith M 1 4David N 2 2Thanks every one! |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
inou
Starting Member
9 Posts |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
inou
Starting Member
9 Posts |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
inou
Starting Member
9 Posts |
Posted - 2012-06-14 : 17:25:42
|
| here what I tried:SELECT a.Fname, a.Lname, a.MemberID, COUNT(b.RequestSubmited) TotalSubmitedFROM Tbl1 a, Tbl2 bWHERE a.MemberID = b.MemberIDGROUP BY a.MemeberIDORDER BY a.FnameGot error:Column 'Fname' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.Help! |
 |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
inou
Starting Member
9 Posts |
Posted - 2012-06-14 : 17:41:32
|
quote: Originally posted by tkizer Try this:SELECT Fname, Lname, MemberID, COUNT(RequestSubmited) TotalSubmitedFROM (SELECT a.Fname, a.Lname, a.MemberIDFROM Tbl1 a, Tbl2 bWHERE a.MemberID = b.MemberID) tGROUP BY Fname, Lname, MemberIDORDER BY FnameTara KizerMicrosoft MVP for Windows Server System - SQL Serverhttp://weblogs.sqlteam.com/tarad/Subscribe to my blog
Thanks but got error below:Msg 207, Level 16, State 1, Line 1Invalid column name 'RequestSubmited'. |
 |
|
|
jeffw8713
Aged Yak Warrior
819 Posts |
Posted - 2012-06-14 : 17:41:34
|
| GROUP BY a.Fname, a.Lname, a.MemberID |
 |
|
|
Lamprey
Master Smack Fu Yak Hacker
4614 Posts |
Posted - 2012-06-14 : 17:46:04
|
| [code]DECLARE @Tbl1 TABLE (Fname VARCHAR(10), Lname VARCHAR(10), MemberID INT)INSERT @Tbl1 (Fname, Lname, MemberID)VALUES('Smith', 'M', 1),('David', 'N', 2)DECLARE @Tbl2 TABLE (MemberID INT, RequestSubmited CHAR(1))INSERT @Tbl2 (MemberID, RequestSubmited)VALUES(1, 'Y'),(2, 'Y'),(1, 'Y'),(1, 'Y'),(2, 'Y'),(1, 'Y')SELECT A.Fname, A.Lname, A.MemberID, SUM(CASE WHEN B.RequestSubmited = 'Y' THEN 1 ELSE 0 END) AS TotalSubmittedFROM @Tbl1 AS AINNER JOIN @Tbl2 AS B ON A.MemberID = B.MemberIDGROUP BY A.Fname, A.Lname, A.MemberID[/code] |
 |
|
|
inou
Starting Member
9 Posts |
Posted - 2012-06-14 : 18:07:38
|
| great, worked! you saved my day.Thank you very much guys! |
 |
|
|
|