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; 🙏
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
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.
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?
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
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
Mais uma excelente aula!
Grata!
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;
🙏
Ótima aula. Aprender SQL é necessário. Valeu !!!
Muito bom!!!
Perfeito! vc utiliza os melhores exemplos!
Parabéns, didático!
Muito bom. Os teus vídeos estão me ajudando muito. Obrigado.
Qui bom que você liberou o DB_loja kkk já estava triste por não poder acompanhar os passos rsrsr
Ótima aula!
Òtima Aula, e se quisesse mostrar uma consulta da soma Total de cada Produto para cada Ciente.
Muito bom. Tá de parabéns, tá me ajudando muito!!!
Simples e objetivo curti!
Muito bom.
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
Sugestão anotada amigo, obrigado!
Bom dia Fabio! Gosto muito da sua metodologia de ensino. Por acaso, essa aula de PIVOT já foi produzida?
Outra maneira de conseguir executar o primeiro código, é incluir a função de agregação dentro do group by… estou certo?
Como eu faço uma View com esta sentença. Não aceita declaração de vaiável?
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.
Ótimo vídeo, mas não consegui encontrar o banco Lojas no site.
Funciona como as tabelas temporárias?
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?
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
+Thalia Cristine query*
Só não entendi, se o AS referencia um Alias, então o Select que esta dentro do () seria o Alias do With
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
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
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)