Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
kamii47
Constraint Violating Yak Guru
353 Posts |
Posted - 2008-05-19 : 08:08:25
|
| I following two queriesFirst query is SELECT HomeTeam, 1 AS Pld, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Lost, HomeScore AS Scored, AwayScore AS Against, HomeScore - AwayScore AS Agg, CASE WHEN HomeScore > AwayScore THEN 3 ELSE 0 END AS Pts FROM tblFixtures WHERE (CompID = 1) AND (HomeScore IS NOT NULL)and second query isSELECT AwayTeam, 1 AS Pld, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Lost, AwayScore AS Scored, HomeScore AS Against, AwayScore - HomeScore AS Agg, CASE WHEN HomeScore < AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Pts FROM tblFixtures WHERE (CompID = 1) AND (HomeScore IS NOT NULL)what i need is I want to create another joint result of two queries which adds up all the totals from each of the other two queries.Result some thing likeTeam, Pld, W, D, L, F, A, Agg, PtsKamran ShahidSr. Software Engineer(MCSD.Net)www.netprosys.com |
|
|
RickD
Slow But Sure Yak Herding Master
3608 Posts |
Posted - 2008-05-19 : 08:27:36
|
| The queries are the same, so why would you want to get the same results twice? |
 |
|
|
kamii47
Constraint Violating Yak Guru
353 Posts |
Posted - 2008-05-19 : 08:44:13
|
| They are different [Post edited previously pasted the same query twice]Kamran ShahidSr. Software Engineer(MCSD.Net)www.netprosys.com |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-05-19 : 09:12:01
|
First query is missing a WHEN for tie games.SELECT HomeTeam, 1 AS Pld, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Lost, HomeScore AS Scored, AwayScore AS Against, HomeScore - AwayScore AS Agg, CASE WHEN HomeScore > AwayScore THEN 3 ELSE 0 END AS PtsFROM tblFixturesWHERE CompID = 1 AND HomeScore IS NOT NULLSELECT AwayTeam, 1 AS Pld, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Lost, AwayScore AS Scored, HomeScore AS Against, AwayScore - HomeScore AS Agg, CASE WHEN HomeScore < AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixturesWHERE CompID = 1 AND HomeScore IS NOT NULL E 12°55'05.25"N 56°04'39.16" |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-05-19 : 09:15:26
|
[code]SELECT HomeTeam, 1 AS Pld, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Lost, HomeScore AS Scored, AwayScore AS Against, HomeScore - AwayScore AS Agg, CASE WHEN HomeScore > AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixturesWHERE CompID = 1 AND HomeScore IS NOT NULLUNION ALLSELECT AwayTeam, 1 AS Pld, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Lost, AwayScore AS Scored, HomeScore AS Against, AwayScore - HomeScore AS Agg, CASE WHEN HomeScore < AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixturesWHERE CompID = 1 AND HomeScore IS NOT NULL[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
kamii47
Constraint Violating Yak Guru
353 Posts |
Posted - 2008-05-19 : 10:01:04
|
| brilliant, saves my dayIs it possible to group by "Team" in the following SQL Datasource?Each row has a numbers in their respective columns and need to be added up and only one row per team is shown showing the total? SELECT HomeTeam AS Team, 1 AS Pld, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Lost, HomeScore AS Scored, AwayScore AS Against, HomeScore - AwayScore AS Agg, CASE WHEN HomeScore > AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixturesWHERE (CompID = 1) AND (HomeScore IS NOT NULL)UNION ALLSELECT AwayTeam AS Team, 1 AS Pld, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Lost, AwayScore AS Scored, HomeScore AS Against, AwayScore - HomeScore AS Agg, CASE WHEN HomeScore < AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixtures AS tblFixtures_1WHERE (CompID = 1) AND (HomeScore IS NOT NULL)Kamran ShahidSr. Software Engineer(MCSD.Net)www.netprosys.com |
 |
|
|
RickD
Slow But Sure Yak Herding Master
3608 Posts |
Posted - 2008-05-19 : 10:02:02
|
Adding to Peters query:select HomeTeam, sum(won) as Won, sum(Draw) as Draw, Sum(Lost) as Lost, Sum(Scored) as Scored, Sum(Against) as Against, Sum(Agg) as Agg, Sum(Pts) as Ptsfrom(SELECT HomeTeam, 1 AS Pld, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Lost, HomeScore AS Scored, AwayScore AS Against, HomeScore - AwayScore AS Agg, CASE WHEN HomeScore > AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixturesWHERE CompID = 1 AND HomeScore IS NOT NULLUNION ALLSELECT AwayTeam, 1 AS Pld, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Lost, AwayScore AS Scored, HomeScore AS Against, AwayScore - HomeScore AS Agg, CASE WHEN HomeScore < AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS PtsFROM tblFixturesWHERE CompID = 1 AND HomeScore IS NOT NULL) agroup by HomeTeam |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-05-19 : 10:12:32
|
[code]DECLARE @Sample TABLE ( HomeTeam VARCHAR(10), HomeScore INT, AwayTeam VARCHAR(10), AwayScore INT )INSERT @SampleSELECT 'SQLTeam', 10, 'Peso', 10 UNION ALLSELECT 'SQLTeam', 20, 'Kamii47', 0 UNION ALLSELECT 'Peso', 15, 'Kamii47', 1 UNION ALLSELECT 'Kamii47', 1, 'Peso', 2SELECT p.TeamName, COUNT(*) AS Pld, SUM( CASE WHEN p.Game = 'HomeTeam' AND p.HomeScore > p.AwayScore THEN 1 WHEN p.Game = 'AwayTeam' AND p.HomeScore < p.AwayScore THEN 1 ELSE 0 END) AS Won, SUM( CASE WHEN p.HomeScore = p.AwayScore THEN 1 ELSE 0 END) AS Draw, SUM( CASE WHEN p.Game = 'HomeTeam' AND p.HomeScore < p.AwayScore THEN 1 WHEN p.Game = 'AwayTeam' AND p.HomeScore > p.AwayScore THEN 1 ELSE 0 END) AS Won, SUM(p.AwayScore) AS Scored, SUM(p.HomeScore) AS Against, SUM(p.AwayScore - p.HomeScore) AS Agg, SUM( CASE WHEN p.Game = 'HomeTeam' AND p.HomeScore > p.AwayScore THEN 3 WHEN p.Game = 'AwayTeam' AND p.HomeScore < p.AwayScore THEN 3 WHEN p.HomeScore = p.AwayScore THEN 1 ELSE 0 END) AS PtsFROM @Sample AS sUNPIVOT ( TeamName FOR Game IN (s.HomeTeam, s.AwayTeam) ) AS pGROUP BY p.TeamNameORDER BY 9 DESC, 3 DESC[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
kamii47
Constraint Violating Yak Guru
353 Posts |
Posted - 2008-09-05 : 16:02:50
|
| Hi Guys,My above problem is solved.You guysy helped me with a query to create a football league table. I just wandered if you could help me finish this off?I have the following tables and SQL statment which works out a league table for me from the given results.I am now trying to add a bit more to this:If the Walkover column = 1 then that row will be a home walkover meaning that the score will be 0(Home Score) - 0(Away Score) but the home team will recieve 3 points, and away team recieves 0 points, win column will be 1 and the played colum will be 1 as well.If the Walkover column = 2 then that row will be a home walkover meaning that the score will be 0(Home Score) - 0(Away Score) but the away team will recieve 3 points, and home team recieves 0 points, win column will be 1 and the played colum will be 1 as well.If the Walkover column = 0 then that row the row will be calculated as normal. tblFixtureFixtureIDCompID (Division ID Name)HomeTeam (ID from tblTeam)AwayTeam (ID from tblTeam)HomeScoreAwayScoreWalkover (2, 1 or 0)tblTeamTeamIDTeamNameSQL Statement:SELECT a.HomeTeam, SUM(a.Pld) AS Pld, SUM(a.Won) AS Won, SUM(a.Draw) AS Draw, SUM(a.Lost) AS Lost, SUM(a.Scored) AS Scored, SUM(a.Against) AS Against, SUM(a.Agg) AS Agg, SUM(a.Pts) AS Pts, tblTeam.TeamNameFROM (SELECT HomeTeam, 1 AS Pld, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Lost, HomeScore AS Scored, AwayScore AS Against, HomeScore - AwayScore AS Agg, CASE WHEN HomeScore > AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Pts FROM tblFixtures WHERE (CompID = @CompID) AND (HomeScore IS NOT NULL) UNION ALL SELECT AwayTeam, 1 AS Pld, CASE WHEN HomeScore < AwayScore THEN 1 ELSE 0 END AS Won, CASE WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Draw, CASE WHEN HomeScore > AwayScore THEN 1 ELSE 0 END AS Lost, AwayScore AS Scored, HomeScore AS Against, AwayScore - HomeScore AS Agg, CASE WHEN HomeScore < AwayScore THEN 3 WHEN HomeScore = AwayScore THEN 1 ELSE 0 END AS Pts FROM tblFixtures AS tblFixtures_1 WHERE (CompID = @CompID) AND (HomeScore IS NOT NULL)) AS a INNER JOIN tblTeam ON a.HomeTeam = tblTeam.TeamIDGROUP BY a.HomeTeam, tblTeam.TeamNameORDER BY Pts DESC, Agg DESC, Scored DESCKamran ShahidSr. Software Engineer(MCSD.Net,MCPD.net)www.netprosys.com |
 |
|
|
|
|
|
|
|