LeoncioNT 0 Denunciar post Postado Março 25, 2013 whats up dudes ! preciso de ajuda com o codigo abaixo --- esta tudo certo, mas nao processa --- fica um tempao la e nada... SELECT * FROM tabela1 d INNER JOIN tabela2 d1 ON (d.terminal = d1.terminal AND d.data = d1.data2) WHERE left(d1.data2,7) = '2013-03' * tabela2 é uma view da propria tabela1 Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 25, 2013 qual o objetivo dessa consulta? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 25, 2013 Pq usar uma VIEW ? A tabela tem índice ? Fez o plano de execução da query ? Compartilhar este post Link para o post Compartilhar em outros sites
LeoncioNT 0 Denunciar post Postado Março 25, 2013 O objetivo da query é listar a primeira vez que um terminal foi registrado. Entao eu trago o terminal e a menor data que ele entrou na tabela... SELECT left(n1.campanha,7) as camp1, terminal, left(min(data),10) as data1, min(data) as data2 FROM tabela1 n1 GROUP by terminal ORDER by terminal A ideia da segunda query é trazer todos os dados da view --- ou seja exibir todos os campos do primeiro registro do terminal. SELECT * FROM tabela1 d INNER JOIN tabela2 d1 ON (d.terminal = d1.terminal AND d.data = d1.data2) WHERE left(d1.data2,7) = '2013-03' Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 25, 2013 SELECT * FROM tabela1 d where d.data = (select min(d2.data) from tabela1 d2 where d2.terminal = d.terminal) Compartilhar este post Link para o post Compartilhar em outros sites