35 - T-SQL - CTE - Common Table Expression (subconsultas) - SQL Server

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ธ.ค. 2024

ความคิดเห็น • 29

  • @jessicahemily2751
    @jessicahemily2751 ปีที่แล้ว +1

    Mais uma excelente aula!
    Grata!

  • @joatanlima10
    @joatanlima10 ปีที่แล้ว +1

    Parabens pelo video!!
    Preciso de ajuda em um projeto sobre futebol desde já agradeço, as consultas que preciso são: Total Frequencia + Assiduidade, sendo essa segunda mais complexa, exemplo:
    Cada mês são 4 jogos (relatório é sempre puxado do total de 3 meses ou 90 dias), select abaixo já esta organizado por Total de frequencia, faltando organizar por assiduidade que deve ser comparada sempre a cada frequência anterior.
    Exemplo:
    Dois atletas empatam com 8 frequencias, sendo que o primeiro faltou o último jogo 07/04 e o segundo jogador não, então o segundo jogador fica na frente devido ordem de assiduidade, caso continuem empatados, precisa comparar o penultimo jogo que foi jogo 01/04, e assim por diante até chegar em um jogo que um faltou e esse ficará abaixo na ordem da relação: Total Frequencia + Assiduidade.
    Tabelas resumidas são:
    Jogador
    ncod_jogador
    cnome_joagador
    Frequencias
    ncod_jogador
    nqtdeFrequencia
    dt_Frequencia
    Abaixo o select inicial que falta ordenar por assiduidade:
    select
    frequencias.ncod_jogador,
    jogador.cnome_jogador
    sum(nqtdeFrequencia) as Total_Freq
    from frequencias
    inner join jogador on (frequencias.ncod_jogador = jogador.ncod_jogador)
    where CAST(frequencias.dt_frequencia as date)
    BETWEEN cast( dateadd (day, -90,current_date) as date) and cast(current_date as date)
    Group by
    frequencias.ncod_jogador,
    jogador.cnome_jogador
    Order by Total_Freq DESC;
    🙏

  • @jeferson-jeffexcel5560
    @jeferson-jeffexcel5560 4 ปีที่แล้ว +1

    Ótima aula. Aprender SQL é necessário. Valeu !!!

  • @josemariofrazaocamara2673
    @josemariofrazaocamara2673 ปีที่แล้ว +1

    Muito bom!!!

  • @lasu5060
    @lasu5060 2 ปีที่แล้ว

    Perfeito! vc utiliza os melhores exemplos!

  • @guilhermeaugusto1287
    @guilhermeaugusto1287 2 ปีที่แล้ว

    Parabéns, didático!

  • @adrianomorrison2
    @adrianomorrison2 5 ปีที่แล้ว

    Muito bom. Os teus vídeos estão me ajudando muito. Obrigado.

  • @wanderson34456
    @wanderson34456 8 ปีที่แล้ว

    Qui bom que você liberou o DB_loja kkk já estava triste por não poder acompanhar os passos rsrsr

  • @brunog2766
    @brunog2766 2 ปีที่แล้ว +1

    Ótima aula!

  • @denysrycardo
    @denysrycardo ปีที่แล้ว

    Òtima Aula, e se quisesse mostrar uma consulta da soma Total de cada Produto para cada Ciente.

  • @nandoalcantara5895
    @nandoalcantara5895 8 ปีที่แล้ว

    Muito bom. Tá de parabéns, tá me ajudando muito!!!

  • @cristielygomes8281
    @cristielygomes8281 7 ปีที่แล้ว

    Simples e objetivo curti!

  • @joaopoliceno8844
    @joaopoliceno8844 3 ปีที่แล้ว

    Muito bom.

  • @deeskorzeny
    @deeskorzeny 11 ปีที่แล้ว +6

    Fabio, já venho acompanhando suas video aulas de SQL Server, seria possível uma video aula de PIVOT. nao encontrei video aulas sobre este tema em português ? obrigado

    • @bosontreinamentos
      @bosontreinamentos  11 ปีที่แล้ว +1

      Sugestão anotada amigo, obrigado!

    • @danielfarias992
      @danielfarias992 5 ปีที่แล้ว +1

      Bom dia Fabio! Gosto muito da sua metodologia de ensino. Por acaso, essa aula de PIVOT já foi produzida?

  • @jonathascarlosqueiroga1572
    @jonathascarlosqueiroga1572 ปีที่แล้ว

    Outra maneira de conseguir executar o primeiro código, é incluir a função de agregação dentro do group by… estou certo?

  • @jlima5560
    @jlima5560 3 ปีที่แล้ว

    Como eu faço uma View com esta sentença. Não aceita declaração de vaiável?

  • @jlima5560
    @jlima5560 3 ปีที่แล้ว

    Amigo sabe dizer porque está retornando este erro com a função WITH.
    Começou a retornar este erro.
    Mensagem 530, Nível 16, Estado 1, Linha 5
    A instrução foi encerrada. A recursão máxima 100 se exauriu antes do fim da instrução.

  • @sammaholistic
    @sammaholistic 4 ปีที่แล้ว

    Ótimo vídeo, mas não consegui encontrar o banco Lojas no site.

  • @Luis222ism
    @Luis222ism 5 ปีที่แล้ว

    Funciona como as tabelas temporárias?

  • @mardc16
    @mardc16 9 ปีที่แล้ว

    muito show os videos acompanhei desde os primeiros e nesse fiquei com umas duvidas
    Entre uma subqueries e uma CTE qual possui um melhor desempenho?
    Em uma consulta usando CTE a tabela criada em tempo de execução permanece no banco? se sim, no final do script posso fazer um drop?

    • @thaliacristine429
      @thaliacristine429 8 ปีที่แล้ว +1

      Oi amigo, não fica em banco não, logo depois da utilização da quero externa a CTE some... Não há necessidade do drop

    • @thaliacristine429
      @thaliacristine429 8 ปีที่แล้ว +1

      +Thalia Cristine query*

  • @leandroborges7085
    @leandroborges7085 3 ปีที่แล้ว

    Só não entendi, se o AS referencia um Alias, então o Select que esta dentro do () seria o Alias do With

  • @antoniof.figueiredo3947
    @antoniof.figueiredo3947 4 ปีที่แล้ว

    Pessoal, bom dia.
    Não achei esse banco DB.Loja então fiz uma adaptção usando o código no DB_Biblioteca, a fim de retornar o nome de autor x preço.
    WITH CONSULTA_CTE (NOME,PRECO)
    AS (SELECT A.NOME_AUTOR AS NOME, L.PRECO_LIVRO AS PRECO
    FROM TBL_LIVRO AS L
    INNER JOIN TBL_AUTOR AS A
    ON L.ID_AUTOR = A.ID_AUTOR)
    SELECT NOME, SUM(PRECO) AS VALOR_TOTAL
    FROM CONSULTA_CTE
    GROUP BY NOME
    ORDER BY VALOR_TOTAL

  • @keflemtrindade2422
    @keflemtrindade2422 8 ปีที่แล้ว

    Muito bom os videos e a explicação, Só achei um ERRO ter adicionado do "NADA" o BD LOJA, pois eu me perde completamente, visto que tava usando o BD Biblioteca. e não havia explicação da criação do BD loja.
    ;x

    • @DanielAraujo-ck4fs
      @DanielAraujo-ck4fs 8 ปีที่แล้ว +6

      use db_lojas
      --TABELA CLIENTES
      CREATE TABLE CLIENTES(
      ID_CLIENTE SMALLINT PRIMARY KEY IDENTITY (100,1),
      NOME_CLIENTE VARCHAR(25)NOT NULL,
      CPF VARCHAR(15) UNIQUE NOT NULL
      )
      --TABELA PRODUTO
      CREATE TABLE PRODUTOS(
      ID_PRODUTO SMALLINT PRIMARY KEY IDENTITY,
      NOME_PRODUTO VARCHAR(25)NOT NULL,
      PRECO_PRODUTO MONEY NOT NULL
      )
      --TABELA COMPRAS
      CREATE TABLE TBL_COMPRAS(
      ID_COMPRA SMALLINT PRIMARY KEY IDENTITY,
      QUANTIDADE SMALLINT,
      ID_PRODUTO SMALLINT NOT NULL,
      ID_CLIENTE SMALLINT NOT NULL
      )
      --CONSTARINTS
      ALTER TABLE TBL_COMPRAS
      ADD CONSTRAINT FK_ID_CLIENTE FOREIGN KEY (ID_CLIENTE)
      REFERENCES CLIENTES
      ALTER TABLE TBL_COMPRAS
      ADD CONSTRAINT FK_ID_PRODUTO FOREIGN KEY (ID_PRODUTO)
      REFERENCES PRODUTOS
      --DADOS DO CLIENTE
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('ANDERSON',32003705805)
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('ANDREA', 41011103586)
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('GABRIEL', 22230150687)
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('ALANA', 85003204689)
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('ELIZANGELA', 66601204689)
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('ANGELUZA', 55589222235)
      INSERT INTO CLIENTES (NOME_CLIENTE,CPF) VALUES ('CICERO', 44486224978)
      --DADOS DOS PRODUTOS
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('PEDRIVER', 20.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('TECLADO', 35.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('MOUSE', 25.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('HD500GB', 200.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('SSD250GB', 150.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('WEBCAN', 30.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('DVD', 5.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('CABO USB', 50.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('CABO HDMT', 60.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('PLACA DE VIDEO', 600.00)
      INSERT INTO PRODUTOS (NOME_PRODUTO,PRECO_PRODUTO) VALUES ('PLACA DE REDE', 100.00)
      --DADOS
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (3,100,1)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (2,102,3)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (4,101,9)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (3,101,8)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (1,106,5)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (3,103,7)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (5,105,5)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (1,100,10)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (2,104,1)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (5,104,3)
      INSERT INTO TBL_COMPRAS (QUANTIDADE,ID_CLIENTE,ID_PRODUTO) VALUES (1,102,11)