Ir para o conteúdo
kadinho

Ajuda - ligar 2 tabelas

Mensagens Recomendadas

kadinho    0
kadinho

Ora bem pessoal, preciso da ajuda dos cranios da programação. :hmm:

É assim tenho 1 tabela de artigos (codigo,designação, EAN, UV etc...) e tenho uma tabela de promoções (codigo, data de inicio, data fim, preço e pouco mais) e quero fazer uma consulta em que essa consulta me vai retornar uma lista de artigos e mostra o preço promocional do artigo se a data em que a consulta é feita estiver entre a data de inicio e data de fim. Como faço isso ?

Já agora isso é para usar num report feito em Crystal Reports XI.

cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

SELECT *
FROM artigo a, promocoes p
WHERE p.datainicio> 'data de inicio' AND p.datafim<'data de fim' AND p.codigo=a.codigo

Suponho que faças isto em SQL...

Acho que é qualquer coisa desse género (segundo tu especificas-te).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kadinho    0
kadinho

estou a construir um report em Crystal Reports XI e uso SQL mas as bases de dados são ORACLE.

Essa query é interessante mas e o link das tabelas ?

Obrigado desde já pela ajuda  :(

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

Falta aí um INNER JOIN

SELECT <colunas_a_ver>
FROM <tabela1> INNER JOIN 
<tabela2> AS <tabela1>.<coluna_código> = <tabela2>.<coluna_código>
WHERE <condições>;

Só falta substituir os <> pelas colunas, tabelas e condições correctas :(

SQL é lindo :P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kadinho    0
kadinho

É isso, mas assim só vou ter os artigos que são iguais nas 2 tabelas e vai-me retornar só os que estão em promo.

Quero todos os artigos da tabela 1 (artigos) e ver o campo do preço da tabela das promoções se o artigos estiver em promo.

Não sei se me estou a explicar bem...

cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
skm    0
skm

Deves usar o LEFT OUTER JOIN

Oracle 9i

SELECT <colunas_a_ver>
FROM <tabela1> LEFT OUTER JOIN <tabela2>
ON <tabela1>.<coluna_código>= <tabela2>.<coluna_código>
WHERE <condições>;

Oracle 8i

SELECT <colunas_a_ver>
FROM <tabela1>, <tabela2>
WHERE <tabela1>.<coluna_código>= <tabela2>.<coluna_código> (+) AND
      <condições>;

Para o 10G e 11G a sintaxe é igaul a do 9i

Só falta substituir os <> pelas colunas, tabelas e condições correctas

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kadinho    0
kadinho

Oracle 8i

SELECT <colunas_a_ver>
FROM <tabela1>, <tabela2>
WHERE <tabela1>.<coluna_código>= <tabela2>.<coluna_código> (+) AND
      <condições>;

Estou a seguir por este caminho, obrigado desde já. No entanto estou a ter duplicados pois a tabela 2 (promoções dos artigos) tem varias promoções para o mesmo artigo onde o que vale é a data de inicio e de fim da promo. Precisava de mais ajuda por favor

obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
skm    0
skm

Colocas essas condições no WHERE

SELECT <colunas_a_ver>
FROM <tabela1>, <tabela2>
WHERE <tabela1>.<coluna_código>= <tabela2>.<coluna_código> (+) AND
             <tabela2.><coluna_data> >= <dataincio> AND
             <tabela2>.<coluna_data> <= <datafim> AND
            <condições>;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kadinho    0
kadinho

SELECT <colunas_a_ver>
FROM <tabela1>, <tabela2>
WHERE <tabela1>.<coluna_código>= <tabela2>.<coluna_código> (+) AND
             <tabela2.><data_ini> <= 'data_actual' (+) AND
             <tabela2>.<data_fim> >= 'data_actual' (+) AND
            <condições>;

Assim já consegui.... agora vem a pior parte em que tenho de criar um report com isto em CR XI  :S

Não tenho a opção full outer join activa  :S

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade