none
Retornar uma consulta usando 3 tabelas RRS feed

  • Pergunta

  • Bom dia para todos.

    Estou iniciando meus aprendizados em sql, e ainda sou leigo no assunto. Gostaria da ajuda de você. Minha dúvida é a seguinte:

    Tenho 3 tabelas, são elas:

    TblClientes
    codigo_cliente nome_cliente
    1 SÉRGIO
    2 MARCOS
    3 JOÃO


    TblPlanos
    numero_plano tam01 tam02 tam03 tam04 tam05
    1200 40 42 44 46 48
    1201 36 38 40 42 44

    TblProduzido
    numero_plano codigo_cliente quantidade tamanho
    1200 3 5 40
    1200 3 3 40
    1200 3 22 42
    1201 3 10 44
    1201 2 15 36
    1201 2 20 36
    1200 2 9 48
    1200 2 18 48
    1201 1 13 38
    1201 1 11 38
    1200 1 2 48

    Preciso retornar uma consulta onde esteja ordenado por nome_cliente, numero_plano, tamanho e totalizando, conforme exemplo abaixo:

    Resultado
    nome_cliente numero_plano tamanho quantidade
    SÉRGIO 1200 48 2
    SÉRGIO 1201 38 24
    MARCOS 1200 48 27
    MARCOS 1201 36 35
    JOÃO 1200 40 8
    JOÃO 1200 42 22
    JOÃO 1201 44 10

    Alguém poderia me ajudar a escrever essa consulta SQL?

    Desde já agradeço a atenção de todos.

    sexta-feira, 28 de outubro de 2016 12:50

Respostas

  • blz,

    Para a consulta que você quer precisa entender 2 conceitos 

    chave estrangeira que liga as tabelas e join que faz a busca e junta as informações.

    segue o link de ótimos videos.

    https://www.youtube.com/playlist?list=PLwFf8gSUEopy3j-Fq8WyeMoLyNTh9BrKe

    sexta-feira, 28 de outubro de 2016 13:05

Todas as Respostas

  • blz,

    Para a consulta que você quer precisa entender 2 conceitos 

    chave estrangeira que liga as tabelas e join que faz a busca e junta as informações.

    segue o link de ótimos videos.

    https://www.youtube.com/playlist?list=PLwFf8gSUEopy3j-Fq8WyeMoLyNTh9BrKe

    sexta-feira, 28 de outubro de 2016 13:05
  • Sua pergunta resolve com isso

    SELECT  TC.nome_cliente ,
            TP.numero_plano ,
            SUM(TP.tamanho) AS Tamanho ,
            SUM(TP.quantidade) AS Quantidade
    FROM    dbo.TblClientes AS TC
            JOIN dbo.TblProduzido AS TP ON TP.codigo_cliente = TC.codigo_cliente
    GROUP BY TC.codigo_cliente ,
            TC.nome_cliente ,
            TP.numero_plano
    ORDER BY TC.codigo_cliente;

    Estude As formas de joins  Leia esse artigo 

    http://www.devmedia.com.br/clausulas-inner-join-left-join-e-right-join-associacao-de-tabelas-sql-server-2008/18930

    E sobre agrupadores 

    http://www.devmedia.com.br/introducao-ao-sql-agrupamento-de-resultados/17008


    Wesley Neves

    sexta-feira, 28 de outubro de 2016 13:14