DUVIDA MONTAR CONSULTA SQL
BOA TARDE PESSOAL PRECISO DE UMA AJUDA AQUI:
TENHO DUAS TABELAS :
TB_NOTA(COD_NOTA,NUMERO,DATA_NOTA)
TB_ITENSNOTA(COD,COD_PRODUTO,COD_NOTA,DESCRICAO_PROD,QTD_PROD, VALOR_PROD)
QUERO MONTAR UMA CONSULTA QUE ME RETORNE , AS NOTAS DE UM INTERVALO DE DATAS, QUE TEM UM DETERMINADO PRODUTO .
EX:
NOTA |DATA|DESCRIÇÃO PRODUTO|PREÇO UNIT|QUANTIDADE
001 - 02/05/14 - ALHO - R$2,50 - 5KG
002 - 03/05/14 - ALHO - R$2,50 - 3KG
002 - 04/05/14 - ALHO - R$2,50 - 4KG
002 - 05/05/14 - ALHO - R$2,50 - 2KG
TOTAL :14KG - R$10,00
TENHO DUAS TABELAS :
TB_NOTA(COD_NOTA,NUMERO,DATA_NOTA)
TB_ITENSNOTA(COD,COD_PRODUTO,COD_NOTA,DESCRICAO_PROD,QTD_PROD, VALOR_PROD)
QUERO MONTAR UMA CONSULTA QUE ME RETORNE , AS NOTAS DE UM INTERVALO DE DATAS, QUE TEM UM DETERMINADO PRODUTO .
EX:
NOTA |DATA|DESCRIÇÃO PRODUTO|PREÇO UNIT|QUANTIDADE
001 - 02/05/14 - ALHO - R$2,50 - 5KG
002 - 03/05/14 - ALHO - R$2,50 - 3KG
002 - 04/05/14 - ALHO - R$2,50 - 4KG
002 - 05/05/14 - ALHO - R$2,50 - 2KG
TOTAL :14KG - R$10,00
Diego Soares
Curtidas 0
Respostas
Jefferson Santos
15/05/2014
Faça um Join no momento do filtro utilize between and produtos que deseja.
GOSTEI 0
Diego Soares
15/05/2014
obrigado jefferson, mas como eu faço ?
GOSTEI 0
Jefferson Santos
15/05/2014
Sua tabela não tem FK, não tem nada que faça a ligação entre uma e outra, reveja seu modelo relacional.
GOSTEI 0
Diego Soares
15/05/2014
foi mal por não informar
TENHO DUAS TABELAS :
TB_NOTA(COD_NOTA(PK),NUMERO,DATA_NOTA)
TB_ITENSNOTA(COD(PK),COD_PRODUTO,COD_NOTA(FK),DESCRICAO_PROD,QTD_PROD, VALOR_PROD)
TENHO DUAS TABELAS :
TB_NOTA(COD_NOTA(PK),NUMERO,DATA_NOTA)
TB_ITENSNOTA(COD(PK),COD_PRODUTO,COD_NOTA(FK),DESCRICAO_PROD,QTD_PROD, VALOR_PROD)
GOSTEI 0
Jose Alves
15/05/2014
Select * from TB_NOTA, TB_ITENSNOTA where TB_ITENSNOTA.COD_NOTA= TB_NOTA.COD_NOTA AND DESCRICAO_PROD LIKE 'alho' and (TB_NOTA.DATA_NOTA BETWEEN '2014-01-12' AND '2014-05-12')
fiz essa query sem testar, adapta á tua situação que nao deve andar muito longe disso
GOSTEI 0
Marisiana Battistella
15/05/2014
Olá Diego!
O ideal seria você normalizar teu modelo criando uma tabela produto para armazenar o cadastro dos produtos e apenas referenciar o código do produto na ITENS_NOTA. Ficaria assim:
=> TB_NOTA (COD_NOTA(PK), NUMERO, DATA_NOTA)
=> TB_ITENSNOTA (COD_ITEMNOTA (PK), COD_PRODUTO(FK) , COD_NOTA(FK),QTD_PROD, VALOR_PROD)
=> TB_PRODUTO (COD_PRODUTO (PK), DESCRICAO_PROD)
Quanto ao SQL, com essas tabelas q passei, vc pode fazer assim:
Onde v_datainicio, v_datafim e v_codproduto são variáveis q serão informadas na aplicação pelo usuário.
O ideal seria você normalizar teu modelo criando uma tabela produto para armazenar o cadastro dos produtos e apenas referenciar o código do produto na ITENS_NOTA. Ficaria assim:
=> TB_NOTA (COD_NOTA(PK), NUMERO, DATA_NOTA)
=> TB_ITENSNOTA (COD_ITEMNOTA (PK), COD_PRODUTO(FK) , COD_NOTA(FK),QTD_PROD, VALOR_PROD)
=> TB_PRODUTO (COD_PRODUTO (PK), DESCRICAO_PROD)
Quanto ao SQL, com essas tabelas q passei, vc pode fazer assim:
Select n.numero, n.data_nota, in.cod_produto, p.descricao_prod, in.valor_prod, in.qtd_prod from tb_nota n join tb_itensnota in on in.cod_nota = n.cod_nota join tb_produto p on in.cod_produto = p.cod_produto where n.data_nota between v_datainicio and v_datafim and p.cod_produto = v_codproduto order by d.data_nota;
Onde v_datainicio, v_datafim e v_codproduto são variáveis q serão informadas na aplicação pelo usuário.
GOSTEI 0
Odilon Junior
15/05/2014
Olá Diego!
O ideal seria você normalizar teu modelo criando uma tabela produto para armazenar o cadastro dos produtos e apenas referenciar o código do produto na ITENS_NOTA. Ficaria assim:
=> TB_NOTA (COD_NOTA(PK), NUMERO, DATA_NOTA)
=> TB_ITENSNOTA (COD_ITEMNOTA (PK), COD_PRODUTO(FK) , COD_NOTA(FK),QTD_PROD, VALOR_PROD)
=> TB_PRODUTO (COD_PRODUTO (PK), DESCRICAO_PROD)
Quanto ao SQL, com essas tabelas q passei, vc pode fazer assim:
Onde v_datainicio, v_datafim e v_codproduto são variáveis q serão informadas na aplicação pelo usuário.
O ideal seria você normalizar teu modelo criando uma tabela produto para armazenar o cadastro dos produtos e apenas referenciar o código do produto na ITENS_NOTA. Ficaria assim:
=> TB_NOTA (COD_NOTA(PK), NUMERO, DATA_NOTA)
=> TB_ITENSNOTA (COD_ITEMNOTA (PK), COD_PRODUTO(FK) , COD_NOTA(FK),QTD_PROD, VALOR_PROD)
=> TB_PRODUTO (COD_PRODUTO (PK), DESCRICAO_PROD)
Quanto ao SQL, com essas tabelas q passei, vc pode fazer assim:
Select n.numero, n.data_nota, in.cod_produto, p.descricao_prod, in.valor_prod, in.qtd_prod from tb_nota n join tb_itensnota in on in.cod_nota = n.cod_nota join tb_produto p on in.cod_produto = p.cod_produto where n.data_nota between v_datainicio and v_datafim and p.cod_produto = v_codproduto order by d.data_nota;
Onde v_datainicio, v_datafim e v_codproduto são variáveis q serão informadas na aplicação pelo usuário.
Marisiana, eu estava apanhando para fazer um join e li seu código pois achei meu caso mais ou menos parecido com o do Diego.
Consegui resolver.
Obrigado
GOSTEI 0
Marisiana Battistella
15/05/2014
Por nada! Que bom te ajudou! =)
Seja bem vindo ao Fórum Devmedia! Participe sempre que puder!
O pessoal aqui sempre se ajuda compartilhando conhecimento ao mesmo tempo que resolvemos nossas próprias dúvidas!
Seja bem vindo ao Fórum Devmedia! Participe sempre que puder!
O pessoal aqui sempre se ajuda compartilhando conhecimento ao mesmo tempo que resolvemos nossas próprias dúvidas!
GOSTEI 0
Odilon Junior
15/05/2014
=)
Participarei sim. realmente esse fórum é bem interessante.
Principalmente porque comecei a estudar sql server recentemente e já consegui uma infinidade de materiais de estudo aqui no fórum.
Participarei sim. realmente esse fórum é bem interessante.
Principalmente porque comecei a estudar sql server recentemente e já consegui uma infinidade de materiais de estudo aqui no fórum.
GOSTEI 0
Marisiana Battistella
15/05/2014
Bacana!!
Pelo tempo que estou acessando o Fórum, percebi que tem um pessoal que trabalha com SQLServer que está sempre "ligando" no Fórum.
Pelo tempo que estou acessando o Fórum, percebi que tem um pessoal que trabalha com SQLServer que está sempre "ligando" no Fórum.
GOSTEI 0