Ir para conteúdo

POWERED BY:

Arquivado

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

Felipe Fonseca

inner join

Recommended Posts

Eh o Seguinte Pessoar ....

 

Tenho uma tabela que chama _Despachantes com os campos:

Registro - Nome - PrimeiroNome - E-mail

 

e tem uma consulta da seguinte forma

 

strQuery = "SELECT RespRegistro, COUNT(*) AS Total FROM _Producao WHERE Data BETWEEN #" & vInicio & "#  AND #" & vFim & "# GROUP BY RespRegistro"		Set objRS = objConn.Execute(strQuery)

Até aí tudo bem ... agora eu quero fazer um Inner Join ... com a Tabela _Despachantes ... com o Campo ... RespRegistros da consulta acima ... retornanado o Nome existente na tabela _Registros.

 

Alguem pode me ajudar com essa SQL ?!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, pelo que entendi você quer fazer inner join com tres tabelas(_Despachantes, _Producao e _Registros)...qual o nome dos campos que estão relacionados e como está a estrutura de relacionamento(quem relaciona com quem ai nessas tres tabelas?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não ....

São 2 Tabelas ...

 

Primeiro o Usuario Loga com Registro e Senha

 

1ª Tabela (_Producao) onde o despachante insere sua produção ....

dando entao um insert na tabela .... com o Registro do Login.

 

Aí ... eu faço uma consulta ... com dataInicial e DataFinal ... para saber qual a produção do Despachante em relação ao seu Login de registro assim:

 

* (O campo RespRegistro = Login do Usuario do site )

 

strQuery = "SELECT RespRegistro, COUNT(*) AS Total FROM _Producao WHERE Data BETWEEN #" & vInicio & "#  AND #" & vFim & "# GROUP BY RespRegistro"		Set objRS = objConn.Execute(strQuery)

beleza ... sendo assim .. com esse SQL Acima ... eu tenho o seguinte resultado ....

 

Registro | Nome do Despachante | Total

<%=objRS("RespRegistro")%> | AKI EU QUERO O INNER JOIN .. EM RELAÇAO ao RespRegistro |

<%=objRS"Total")%>

 

ficando assim:

 

<table border="1" id="table3" cellspacing="0" cellpadding="2" width="550">			<tr>				<td align="center" width="70"><b><font face="Trebuchet MS" size="2">Registro</font></b></td>				<td align="center" width="300"><b>				<font face="Trebuchet MS" size="2">Nome do Despachante</font></b></td>				<td align="center"><b><font face="Trebuchet MS" size="2">Total</font></b></td>			</tr><% WHILE NOT objRS.EOF %>			<tr>				<td align="center" width="70"><font face="Trebuchet MS" size="1"><%=objRS("RespRegistro")%>  </font></td>				<td align="center" width="300">				<font face="Trebuchet MS" size="1">[/b][color=#FF0000]AKI INNER JOIN [/color] </font></td>				<td align="center">				<font face="Trebuchet MS" size="1" onclick="FP_openNewWindow('400', '600', false, false, false, false, true, false, '', /*href*/'prod_02_RelatTotalDetalhe.asp?dataIni=<%=vInicio%>&dataFim=<%=vFim%>&resp=<%=objRS("RespRegistro")%>')"><a href = "#"><%=objRS("Total")%></a> </font></td>			</tr><%objRS.MOVENEXTWEND%>					</table>

2ª Tabela _Despachantes .. tenho os campos : Registro | Nome | E-Mail

 

Agora eu preciso fazer o Inner Join ... com a tabela ... _Despachantes para retornar o Nome dos despachantes em relação ao seu Registro ....

 

Resumindo ....

preciso colocar o InnerJoin

 

Preciso fazer o INNER JOIN nesta consulta ....

 

strQuery = "SELECT RespRegistro, COUNT(*) AS Total FROM _Producao WHERE Data BETWEEN #" & vInicio & "#  AND #" & vFim & "# GROUP BY RespRegistro"		Set objRS = objConn.Execute(strQuery)

para eu poder colocar o Nome do Despachante ...

 

 

fico meio confuso ow deu pra entender ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que entendi o sql que pretende é esse(ou algo parecido)

 

strQuery ="SELECT _Despachantes.nome, Count(_Producao.RespRegistro) AS Total FROM _Despachantes INNER JOIN _Producao ON _Despachantes.registro = _Producao.RespRegistroWHERE (((_Producao.data) Between #"&vInicio &"# And #"&vFim&"#))GROUP BY _Despachantes.nome"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eh algo pareci com isso ... mesmo ... deu erro de sintaxe:Microsoft OLE DB Provider for ODBC Drivers erro '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na expressão de consulta '_Despachantes.Nome'. /tl/@producao/prod_02_RelatTotal.asp, line 34 As tabelas e os campos ja verifiquei estao corretos ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Erro Continua ... Pelo Teste q eu fiz ... oErro esta aki ...

 

 

strQuery ="SELECT _Despachantes.nome, Count(_Producao.RespRegistro) AS Total FROM _Despachantes INNER JOIN _Producao ON _Despachantes.registro = _Producao.RespRegistro

WHERE (((_Producao.data) Between #"&vInicio &"# And #"&vFim&"#))

GROUP BY _Despachantes.nome"

 

 

 

:unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer assim, acho que o problema está no underline

 

[_Despachantes.nome]

 

[_Producao.RespRegistro]

 

e assim por diante

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui rodou legal o que te passei. você está usando access né?

 

 

 

se está coloque o código crie uma consulta no db access e troque as variaveis data por valores e verá que vai funcionar

 

no teste que fiz ficou assim

 

SELECT [_Despachantes].nome, Count([_Producao].RespRegistro) AS ContarDeRespRegistroFROM _Despachantes INNER JOIN _Producao ON [_Despachantes].registro=[_Producao].RespRegistroWHERE ((([_Producao].data) Between #1/10/2005# And #9/30/2007#))GROUP BY [_Despachantes].nome;

Compartilhar este post


Link para o post
Compartilhar em outros sites

PERFEITO!!!!!!!!!!!! Meu chapa ... agora sim FUNFOU ....Tipo assim ... No Access ... eu consigo fazer essa consulta pq primeiro faço uma consulta de datas ... e na proxima consulta mando contar e faço o INNER JOIN .... resumindo faço 2 consultas em cascata pra resolver o problema ....Tem como eu montar a consulta da consulta no SQL igual faço no ACCESS ?? tenho que fazer uma SOma na Tabela Produção tbm ... na tabela Produção tem um campo que chama Ponta ...IF Ponta A/B THEN valor = 2ELSE valor = 1END IFdepois eu tenho somar essa produção ... dentreo do SQL que você mandou ...Só que pra mim eh um bicho de 7 cabeças ... mas no access eu resolvo o problema ... :-(O QUe eu faç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.