kania 0 Denunciar post Postado Setembro 23, 2008 Olá pessoal, Gente estou tentando fazer um select em 2 tabelas diferentes, porem de uma forma diferente e nem sei se da para fazer isto, vejam meu código inicial em uma tabela apenas. Set RS = Server.CreateObject("adodb.recordset") SQL = "SELECT nome, inscricao, count(*) total FROM ASSOCIADOS3 WHERE fechamento = '"&session("logar")&"' and tipo not in ('LV','FL','CD') group by fechamento" RS.Open SQL,Conn,3,3 if RS.eof then total = "0 fechamentos" elseif Cint(Rs("total")) => 20 then total = "Parabéns você já tem "&Rs("total")&" fechamentos" else total1 = 20-Cint(Rs("total")) total ="Você tem "&Rs("total")&" fechamento(s), faltam apenas "&total1 end if Rs.close Set Rs = nothing o que preciso das tabelas tabela ASSOCIADOS3 nome, incricao, fechamento (preciso que seja efetuada a contagem de quantos nomes tem no campo fechamento iguais e que correspondem a mesma inscrição, conforme esta acima no código) tabela VENDAS3 incricao, fechamento (preciso que seja efetuada a contagem de quantos nomes tem no campo fechamento iguais e que correspondem a mesma inscrição) aparentemente as 2 consultas seriam iguais, porem eu preciso fazer uma comparação no meio de tudo isto, seguindo algumas regras e foi ai que me atrapalhei. 1 - fazer a contagem na tabela VENDAS3 e ver quantos tem para aquela inscrição, caso não possua nenhum ai ele passa a verificar na tabela ASSOCAIDOS3, caso também não tenham nenhum ele informa que o valor é zero (0). 2 - caso seja encontrado na tabela VENDAS3 algum fechamento para aquela incrição, então verificar na tabela ASSOCIADOS3 se também tem e caso tenha verificar se este fechamento não tem a mesma incrição do que foi encotrado na tabela ASSOCAIDOS3. Nossa complicado né gente, tnato que eu to tatanod fazer aqui algo direto na consulta para ver se da certo Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Setembro 23, 2008 Pessoal acho que da para fazer diferente somente listando o que for encotrado tipo assim: SELECT * FROM ASSOCIADOS3 t1, VENDAS3 t2 WHERE t1.fechamento = '"&session("logar")&"' and t2.fechamento = '"&session("logar")&"' order by t1.nome Porem neste select não sei o porque esta vindo um monte de registros e não somente os que tem fechamentos igual a session("logar"), estranho Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Setembro 23, 2008 gente tentei assim SELECT t1.nome, t1.inscricao,t1.fechamento, t2.inscricao, t2.fechamento FROM ASSOCIADOS3 t1, VENDAS3 t2 WHERE t1.fechamento = 'anderson2008' and t2.fechamento = 'anderson2008' and t1.tipo not in ('lv','cd','fl') group by t1.inscricao order by t1.nome mas a listagem esta vindo toda maluca vejam nome | inscricao | fechamento | inscricao | fechamento DEJANIRA MARIA DA CONCEIÇÃO | DEJAMACO | ANDERSON2008 | LORA | ANDERSON2008 ELOISA CRISTINA DE OLIVEIRA CASTRO | ELOISA2008 | ANDERSON2008 | LORA | ANDERSON2008 IRENICE BATISTA SIQUEIRA MENDES | NICEMENDES | ANDERSON2008 | LORA | ANDERSON2008 IVETE SONIA PACHECO | SONIA2008 | ANDERSON2008 | LORA | ANDERSON2008 MAROLICE RODRIGUES MARTINS | MARO2008 | ANDERSON2008 | LORA | ANDERSON2008 MÁRCIO ANTUNES MOREIRA | ANTUNES | ANDERSON2008 | LORA | ANDERSON2008 OZENIR LIMA SILVA | OZENIR2008 | ANDERSON2008 | LORA | ANDERSON2008 observem que a penutma coluna da pesquisa vem sempre a mesma inscricao, não deveria, teria que ser a inscricao vinculada a aquele fechamento, como nas 2 primeiras colucas, sem contar que não esta vindo todos os nomes como deveria.. O que estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Setembro 26, 2008 t2.fechamento FROM ASSOCIADOS3 t1, VENDAS3 t2 WHERE t1.fechamento = 'anderson2008' and t2.fechamento = 'anderson2008 Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Setembro 26, 2008 Olá Giesta, obrigado por sua resposta, assim, o caso é que se eu faço um select como este que você apresentou acima ele me traz uma consulta repitida, com nomes repetidos, e também tem alguns tipos de registros que não podem ser considerados na tabela, por isso estou usando o t1.tipo para pegar somente um determinado tipo de associado, e estou tentando usar o group by para juntar tudo que for com a mesma incrição, mas não estou saebndo como fazer para juntar colunas iguais de 2 tabelas diferente, vou simplificar abaixo. veja tenho a tabela ASSOCIADOS3 e a VENDAS3 Se eu dar um select separadamente em cada um delas para ver o que preciso ASSOCIADOS3 SELECT nome,inscricao, fechamento FROM ASSOCIADOS3 WHERE FECHAMENTO = 'anderson2008' RESULTADO DESTA PESQUISA NOME____________________________________________INSCRICAO_______FECHAMENTO ============================================================================ OZENIR LIMA SILVA_______________________________OZENIR2008______ANDERSON2008 MAROLICE RODRIGUES MARTINS______________________MARO2008________ANDERSON2008 DEJANIRA MARIA DA CONCEIÇÃO_____________________DEJAMACO________ANDERSON2008 IRENICE BATISTA SIQUEIRA MENDES_________________NICEMENDES______ANDERSON2008 ELOISA CRISTINA DE OLIVEIRA CASTRO______________ELOISA2008______ANDERSON2008 IVETE SONIA PACHECO_____________________________SONIA2008_______ANDERSON2008 MÁRCIO ANTUNES MOREIRA__________________________ANTUNES_________ANDERSON2008 VENDAS3 SELECT inscricao, fechamento FROM VENDAS3 WHERE FECHAMENTO = 'anderson2008' RESULTADO DESTA PESQUISA INSCRICAO_______FECHAMENTO ================================= OZENIR2008______ANDERSON2008 * MARO2008________ANDERSON2008 * DEJAMACO________ANDERSON2008 * NICEMENDES______ANDERSON2008 * EDIVAL2008______ANDERSON2008 IVONETE_________ANDERSON2008 ELOISA2008______ANDERSON2008 * JOSY2008________ANDERSON2008 SONIA2008_______ANDERSON2008 * ANTUNES_________ANDERSON2008 * NILZAMARIA______ANDERSON2008 Note que marqui com * todos os resultados que estão coincidindo nas 2 tabelas, é isto que preciso agrupar, tudo que estiver em uma tabela e também na outra seja retornado somente com um registro, é ai que não to conseguindo fazer. tentei utilizar um INNER JOIN na tabela para ver se dava certo, mas veja os resultados que deu CONSULTA COM INNER JOIN SELECT a.inscricao as CADASTROS_COM_FECHAMENTO FROM ASSOCIADOS3 a inner join VENDAS3 v on a.inscricao = v.inscricao and a.fechamento = 'anderson2008' OZENIR2008 MARO2008 DEJAMACO NICEMENDES JOSY2008 ANTUNES ELOISA2008 SONIA2008 NILZAMARIA note que se compararmos os 2 outros selects, veremos que esta faltando nomes no select do INNER JOIN Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Setembro 26, 2008 consegui cegar a um select que aparentemente resolveu, veja: SELECT a.nome, a.inscricao, v.inscricao FROM ASSOCIADOS3 a inner join VENDAS3 v on a.inscricao = v.inscricao and a.fechamento = 'anderson2008' and a.tipo = 'AC' Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Setembro 26, 2008 Pessoal, infelizmente acabei vendo que minha consulta esta errada ainda, pois em outros testes esta trazendo as informações erradas, acredito que seja por causa do seguinte. estou fazendo a seguinte comparação a.inscricao = v.inscricao ou seja ele só vai mesmo trazer os dados caso as 2 tabelas tenhas dados com a mesma inscrição, porem e se caso o cadastro não tiver sido colocado o fechamento pela tabela associados e sim vendas, ai lascou, hehehe è que os cadastros antigos estavam sendo colocados os fechamentos na tabela associados, e a 1 semana atraz mudamos por questões internas isto, desde então o fechemnto esta sendo inserido na tabela vendas, logo eu preciso fazer o select de forma que ele veja se o registro existe na tabela vendas e na tabela assocaidos caso exista me traga somente um, e se caso não exista na tabela associados ele traz somente o da tabela associados Compartilhar este post Link para o post Compartilhar em outros sites