Я новичок в StackOverflow и новичок в SQL Server. Я бы хотел, чтобы вы помогли мне с каким-нибудь хлопотным запросом.
Это моя структура базы данных (она наполовину испанская, надежда не имеет значения)
База данных
Моя проблема в том, что я сейчас не знаю, как сделать запрос, который указывает, какая команда является локальной, а какая посетителем (используя таблицу TMatch, зная,что стадион принадлежит только одной команде)
Это насколько я могу получить
Select P.NroMatch, (select * from fnTeam (P.TeamA)) as TeamA,(select * from fnTeam (P.TeamB)) as TeamB,
(select * from fnEstadium (P.CodEstadium)) as Estadium, (cast(P.GolesTeamA as varchar)) + '-' + (cast(P.GolesTeamA as varchar)) as Score,
P.Fecha
from TMatch P
Используя следующие функции:
If object_id ('fnTeam','fn')is not null
drop function fnTeam
go
create function fnTeam(@CodTeam varchar(5))
returns table
return(Select Name from TTeam where CodTeam = @CodTeam)
go
select * from fnTeam ('Eq001')
go
----****
If object_id ('fnEstadium','fn')is not null
drop function fnEstadium
go
create function fnEstadium(@CodEstadium varchar(5))
returns table
return(Select Name from TEstadium where CodEstadium = @CodEstadium)
go
Я надеюсь, что яхорошо объяснил, и я заранее благодарю вас за помощь
РЕДАКТИРОВАТЬ:
Спасибо за помощь, это то, что я искал
Select P.NroMatch,
CASE
WHEN Ts.CodTeam= Ta.CodTeamTHEN Ta.Name
ELSE Tb.Name
END
As TeamLocal,
CASE
WHEN Ts.CodTeam<> Ta.CodTeamTHEN Ta.Name
ELSE Tb.Name
END
As TeamVisitante,
Ts.Name as Estadium,
(cast(P.GolesTeamA as varchar)) + '-' + (cast(P.GolesTeamB as varchar)) as Score,
P.Fecha
from
TMatch P
join TTeamTa ON Ta.CodTeam= P.TeamA
join TTeamTb ON Tb.CodTeam= P.TeamB
join TEstadium Ts ON Ts.CodEstadium = P.CodEstadium