Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caezar

[Resolvido] Cod SQL no GridView (RIGHT OUTER JOIN)

Recommended Posts

Eu estou fazendo um sistema de bolão em asp.net (VB) aqui para meu trabalho. Crei uma pagina de acesso para a pagina do usuário com login.

Na pagina de login criei uma session que armazena o codUser da tabela tbl_Usuario.

 

Na pagina do usuário preciso mostrar todos os jogos da tbl_Jogo e tb no mesmo GRID ou algo do tipo apresentar os gols da tbl_Aposta que o usuário ja preencheu. Algo assim:

 

Palmeiras 1 x 1 Corinthians

São Paulo 0 x 0 Santos

S.Caetano x Portuguesa

 

Como você pode ver no exmplo 2 jogos o usuário ja preencheu os resultados e 1 ele ainda não preencheu. De forma que ele tanto possa alterar o resultado ja preenchido como pode preencher nos jogos em branco ainda.

 

As tabelas são essa:

 

Tab_Jogos: CodJogo, Local, Data, Mandante, Visitante

tblUser: CodUser, Nome, Apelido, Senha, Email

tblAposta:(CodJogo, CodUsuario)ChaveComposta, GolsM, GolsV

 

Coloquei uma query no gridview indicada por alguns colegas.

 

SELECT        Tab_Jogos.Rodada, Tab_Jogos.Data_Hora, Tab_Jogos.[Local], Tab_Jogos.Mandante, tblAposta.GolsM, tblAposta.GolsV, Tab_Jogos.Visitante, 
                        tblAposta.cod_aposta
FROM            ((tblAposta RIGHT OUTER JOIN
                        Tab_Jogos ON tblAposta.codJogo = Tab_Jogos.codJogo) LEFT OUTER JOIN
                        tblUser ON tblAposta.codUser = tblUser.codUser)

 

Desta foram aparece todos os registros (Jogos da Tab_Jogos) e todos os resultado preenchidos na tabela aposta, só que para todos usuários.

 

Ai surgiu outra duvida:

 

Como eu vou passar para o sql o cod da session("codUser") que criei? Afinal quando o usuário se logar ele tem que ver as apostas que fez e as que ele não preencheu e não todas as apostas incluindo a de outros users.

 

Tentei por um where mas dai ele mostra só o jogo feito pelo user.

 

SELECT        Tab_Jogos.Rodada, Tab_Jogos.Data_Hora, Tab_Jogos.[Local], Tab_Jogos.Mandante, tblAposta.GolsM, tblAposta.GolsV, Tab_Jogos.Visitante, 
                        tblAposta.cod_aposta
FROM            ((tblAposta RIGHT OUTER JOIN
                        Tab_Jogos ON tblAposta.codJogo = Tab_Jogos.codJogo) LEFT OUTER JOIN
                        tblUser ON tblAposta.codUser = tblUser.codUser)
WHERE        (tblAposta.codUser = ?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos resolvi assim:

SELECT Tab_Jogos.Data_Hora, Tab_Jogos.[Local], Tab_Jogos.Mandante, tblAposta.GolsM, tblAposta.GolsV, Tab_Jogos.Visitante, tblAposta.codUser

FROM (tblAposta RIGHT OUTER JOIN Tab_Jogos ON tblAposta.codJogo = Tab_Jogos.codJogo)

WHERE (tblAposta.codUser IS NULL) OR (tblAposta.codUser = ?)

 

Algum problema com este tipo de solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.