Ir para conteúdo

POWERED BY:

Arquivado

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

ewb

Como listar registros relacionados

Recommended Posts

Olá Pessoal

 

Duas tabelas básicas

 

 

1) Nome da tabela: TABELA1

 

Id = numeração_automatica -------+ relacionado com campo " cod_relaciona_tabela "

Cliente

Cidade

 

 

2) Nome tabela: CICLO

 

Id_ciclo = numeração_automatica

cod_relaciona_tabela = numerico -------+

Descricao_ciclo

 

 

 

Relatório a ser gerado

===================================

 

Cod---Nome------Cidade------Descricao Ciclo

*** ******** ******** ***************

 

1 - Marcelo - Blumenau - 2007/01 <--- como listar a coluna CICLO

2007/02

2007/03

2007/04

 

2 - Alex - Sao Paulo - 2008/01

2008/02

2008/03

2008/04

2008/05

 

* o registro 1 possui 4 ciclos

o registro 2 possui 5 cliclos - Quero listar o registro do Marcelo e os 5 ciclos

 

----------------------------------------

 

 

No arquivo de consulta tenho o seguinte código:

 

quick_info.asp

**************

 

<!--#include file="conexao.asp"-->

<%

<!--#include file="acesso.asp"-->

 

Dim Conexao

Call Abre_Tabelas

 

SQL = "SELECT * FROM tabela INNER JOIN ciclos ON id_ciclo WHERE id = " &

Request.QueryString("id")

 

set rs = Server.CreateObject("ADODB.RecordSet")

rs.Open SQL, conexao, 3

 

%>

 

 

==============================================================

 

Codigo Nome Cidade Ciclo

<%=rs("id")%> <%=rs("nome")%> <%=rs("cidade")%> <%=rs("Descricao_ciclo")%>

 

 

O que esta errado na minha SQL ?

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta errado a forma de relacionar

 

quais campos sao relacionados nas tabelas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

levando em consideração as informações que passou, creio que seja isso. claro que se os nomes das colunas não forem estes devem ser corrigidos. lembrando que inner join necessita que ambas as tabelas contenham registros relacionados, ou seja, só retornará os clientes que tiverem algum id relacionado na tabela ciclo

 

sql="SELECT t.id, t.cliente, t.cidade, c.descricao_ciclo FROM tabela1 AS t INNER JOIN ciclo AS c ON t.id = c.cod_relaciona_tabela WHERE t.id = "&request.querystring("id")&"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Jonathan, muito obrigado pela sua atenção.

 

A linha da sql esta correta, porem qdo abro este registro ele esta listando juntamente com

este registro apenas uma DESCRICAO_CICLO e este registro possui 4 ciclos.

 

 

Cod---Nome Descricao_Ciclos

==============================

1-----Marcelo - Blumenau--- 2007/01

---------------------------------2007/02

----------------------------------2007/03

----------------------------------2007/04

 

Qdo visualizo o registro do Marcelo quero ver tambem TODOS os ciclos.

 

<%=rs("descricao_ciclo")%> Tenho que fazer algum looping aqui ???

 

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao voce precisa ter uma relacionamento entre as tabelas que até o momento nao observei

 

Pode ser uma terceira tabela com o cod do cliente e o cod do ciclo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Mario

 

Esta escrito acima como fiz o relacionamento.

 

 

1) Nome da tabela: TABELA

 

Id = num_auto-------------------+ relacionado com campo " cod_relaciona_tabela "

Cliente = texto

Cidade = texto

 

 

2) Nome tabela: CICLO

 

Id_ciclo = num_auto

cod_relaciona_tabela = numerico -------+

Descricao_ciclo = texto

 

Relacionei os campos dentro do Ms-Access.

 

Ajustei o código segundo o Jonathan oriento ( por sinal bem claro e boa compreensão ),

abaixo fiz ajustes... funciona a sql ...

 

 

sql="SELECT t.id, t.nome, t.cidade, t.ender, t.bairro, t.uf, t.cep, t.sexo, t.fone, t.cell, t.data_nasc, t.data_cad, t.cnpj, t.cpf, t.email, t.skype, t.obs, c.descricao_ciclo FROM tabela AS t INNER JOIN ciclos AS c ON t.id = c.cod_relaciona_tabela WHERE t.id = "&request.querystring("id")&""

 

Como faço para listar TODOS os ciclos? Uma pessoa pode ter mais de um ciclo.

 

01 - Maria - 2001/01 - 2001/02 - 2001/03 - 2002/01 - 2002/02

02 - Pedro - 2004/01 - 2004/02 - 2004/03 - 2005/01 - 2005/02 - 2005-03

03 - Mané - 2007/01 - 2007/02 - 2007/03 - 2008/01 - 2008/02 - 2008-03

 

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

xxxx

 

 

 

Olá,

 

 

SQL

 

sql="SELECT t.id, t.nome, t.cidade, t.ender, t.bairro, t.uf, t.cep, t.sexo, t.fone, t.cell, t.data_nasc, t.data_cad, t.cnpj, t.cpf, t.email, t.skype, t.obs, c.descricao_ciclo FROM tabela AS t INNER JOIN ciclos AS c ON t.id = c.cod_relaciona_tabela WHERE t.id = "&request.querystring("id")&""

 

O que é este erro?

 

 

Tipo de erro:

ADODB.Field (0x80020009)

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

/seicho/cursista_ciclo/quick_info.asp

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

 

Página:

GET /seicho/cursista_ciclo/quick_info.asp

 

Hora:

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por isso precisa normalizar seu db para facilitar estas suas consultas

 

precisa criarum terceira tabela para ficar muito mais simples

 

Como disse esta 3ª tabela precisa apenas de 2 campos que sao os id das duas tabelas

 

Faça isso

 

Basicamente

 

TAB CLIENTE

Id

Cliente

Cidade

 

 

TAB CICLO

Id

Descricao

 

 

TAB CLIENTE_CICLO

Id_Cliente ------> relacionado com o campo Id da TAB CLIENTE

Id_Ciclo ------> relacionado com o campo Id da TAB CICLO

 

Faça isso e continuamos o processo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou Entao ... faça com 2 tableas mesmo ...

assim...

 

 

TABELA CLIENTES

idCliente

Cliente

Cidade

 

 

TABELA CICLO:

idCiclo,

idCliente,

DescricaoCiclo

 

 

Depois a Consulta Assim:

 

SELECT Clientes.idCliente, Clientes.Cliente, Clientes.Cidade, Ciclo.DescricaoCiclo

FROM Clientes LEFT JOIN Ciclo ON Clientes.idCliente = Ciclo.idCliente;

 

sacow ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

so que assim vai ter dados desnecessarios na tabela ciclo

 

Mas ... estou no aguardo para ver como ele resolve fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Mario

 

 

Você viu o arquivo zipado?

 

Aguardo seu retorno

 

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao vi nao

 

So tenho como continuar ajudando por aqui pelo forum

 

Dei a minha sugestao

 

Realize-a e podemos continuar, senao noa tenho como ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

não seria o caso de apenas:

1° executar o sql que coloquei para exibir os nomes usando um loop

2° dentro do loop executar outra query usando como filtro o id do cliente que irá buscar dentro da tabela ciclo e faz um outro loop da tabela ciclo

 

ao meu ver é isso que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario

 

Obrigaod pela sua ajuda, fiz o que você pediu e agora?

 

Aguardo suas instrucoes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom

 

agora como esta seu db e os relacionamentos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia

 

Já fiz o que você pediu, e agora?

 

Preciso de um exemplo simples onde mostra, explica como fazer relacionamentos...

edicao, exclusao, consulta e relatório.

 

Obrigado

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.