none
Query RRS feed

  • Pergunta

  • Bom dia,

     

    É o seguinte:

     

    Tenho 2 tabelas +- com estes campos:

     

    1ª - NumeroCliente, Nome, Origem, Destino, Viatura, Marca, Modelo

    2ª - NumeroCliente, Viatura, Marca, Modelo

     

    Eu precisava de obter uma query com um "Select..." que mostrasse as viaturas de um determinado NumeroCliente existentes em ambas tabelas (apenas uma matrícula, ou seja se existisse vários registos com a mesma matrícula, aparecesse apenas uma).

     

    A ideia é saber por cliente as viaturas que este tem registadas.

     

    Obrigado pela ajuda

    segunda-feira, 27 de agosto de 2007 08:14

Respostas

  • Rui,

    tente assim...

     

    Code Snippet

    SELECT a.NumeroCliente, a.Nome, a.Origem, a.Destino, a.Viatura, a.Marca, a.Modelo

    into #Tabelas

    FROM TABELA1 a

    WHERE a.NumeroCliente= @client

    unnion

    SELECT b.NumeroCliente, b.Nome, b.Origem, b.Destino, b.Viatura, b.Marca, b.Modelo

    FROM TABELA2 b

    WHERE b.NumeroCliente= @client

     

    select NumeroCliente, Nome, Origem, Destino, Viatura, Marca, Modelo, count(*) as qtd

    from #Tabelas

    group by NumeroCliente, Nome, Origem, Destino, Viatura, Marca, Modelo

     

     

    Abraço
    segunda-feira, 27 de agosto de 2007 18:31

Todas as Respostas

  • Cara isso está meio estranho, para que voce quer duas tabelas como quase todos os campos iguais ? se voce já tem NumeroCliente, Viatura, Marca, Modelo na 1ª tabela.

    Se voce só que saber as viaturas que estão por Cliente fazer um WHERE !

     

     

    segunda-feira, 27 de agosto de 2007 11:50
  • Cara, a tabela não tem exactamente esses campos, foi só um exemplo. Elas têm muitos mais (cerca de 200 campos), uma guarda as encomendas, outra guarda as vendas. Tem de ser assim mesmo pois essa aplicação é de uma empresa estrangeira e não podemos alterar nada.

    A questão é que ambas têm referencias a viaturas e eu preciso fazer uma query com as viaturas existentes nas duas tabelas de um determinado cliente.

     

    Precisava mesmo de conseguir fazer isso apenas com um "select..."

    segunda-feira, 27 de agosto de 2007 13:05
  • Pelo que entendir voce que visualizar todas as viaturas registradas para um cliente nas duas tabelas, certo ?

    SELECT a.NumeroCliente, a.Nome, a.Origem, a.Destino, a.Viatura, a.Marca, a.Modelo
    FROM TABELA 1 a INNER JOIN TABELA 2 b
    ON a.NumeroCliente = b.NumeroCliente
    WHERE a.NumeroCliente= '@client'

    Se voce quiser visualizar algum campo da tabela b acrescente no select (b.campo)


     

    segunda-feira, 27 de agosto de 2007 14:25
  • Júlio,

    sim, eu também preciso das viaturas que estão na tabela b, mas se eu acrescentar os campos dessa tabela eu vou ter essa informação em coluna e eu queria em linha. o resultado que eu queria seria +- isto:

     

    Viaturas do cliente "A" encontradas na aplicação:

     

    Matrícula   Marca  Modelo 

    01-02-AS  Opel    Corsa     ... esta está registada na tabela a

    03-03-SS   Fiat    Punto     .... está está registada n tabela b

     

    deu para entender?

    segunda-feira, 27 de agosto de 2007 16:03
  • Alguém me ajuda?

     

    segunda-feira, 27 de agosto de 2007 18:09
  • Rui,

    tente assim...

     

    Code Snippet

    SELECT a.NumeroCliente, a.Nome, a.Origem, a.Destino, a.Viatura, a.Marca, a.Modelo

    into #Tabelas

    FROM TABELA1 a

    WHERE a.NumeroCliente= @client

    unnion

    SELECT b.NumeroCliente, b.Nome, b.Origem, b.Destino, b.Viatura, b.Marca, b.Modelo

    FROM TABELA2 b

    WHERE b.NumeroCliente= @client

     

    select NumeroCliente, Nome, Origem, Destino, Viatura, Marca, Modelo, count(*) as qtd

    from #Tabelas

    group by NumeroCliente, Nome, Origem, Destino, Viatura, Marca, Modelo

     

     

    Abraço
    segunda-feira, 27 de agosto de 2007 18:31