CONSTRUIR CONSULTA EM DUA TABLELAS POR PERIODO
Ola amigos preciso construir uma consulta sql pra filtrar regitros por data e somados e agrupados por item.
a estrutura da minha tabela sao:
tbl produto
codprod, descricao
tblsaida
codsaida, codprodsaida, qtdsaida, datasaida
se laguem puder postar um exemplo comentado fik grato
a estrutura da minha tabela sao:
tbl produto
codprod, descricao
tblsaida
codsaida, codprodsaida, qtdsaida, datasaida
se laguem puder postar um exemplo comentado fik grato
Tente algo do tipo:
SELECT sum(saida.qtdsaida) as QtdTotalSaida
FROM produto, saida
WHERE produto.codprod = saida.codprodsaida
AND (saida.datasaida >= #DATA1#
AND saida.datasaida <= #DATA2#)
GROUP BY produto.codprod
Access
Firebird
eu faço assim e nunca obtive problemas sempre bons resultados
rs.open [Ô]Select tblproduto.codprod, tblproduto.descricao. tblsaida.codsaida, tblsaida.codprodsaida, tblsaida.qtdsaida, tblsaida.datasaida [Ô] & _
[Ô]from tblproduto, tblsaida where tblsaida between #[Ô] & datainicio & [Ô]# and #[Ô] & datatermino & [Ô]# and tblsaida.codprodsaida=tblproduto.codprod[Ô]
Firebird
rs.open [Ô]Select tblproduto.codprod, tblproduto.descricao. tblsaida.codsaida, tblsaida.codprodsaida, tblsaida.qtdsaida, tblsaida.datasaida [Ô] & _
[Ô]from tblproduto, tblsaida where tblsaida between [ô][Ô] & datainicio & [Ô][ô] and [ô][Ô] & datatermino & [Ô][ô] and tblsaida.codprodsaida=tblproduto.codprod[Ô]
eu faço assim e nunca obtive problemas sempre bons resultados
O ice man tudo isso, meu eu nao seria capaz de isso msm....nossa
O iceman eu adaptei seu codigo esta dando erro 462 objeto requerido
veja o codigo
Private Sub Command1_Click()
Dim Data1 As Date
Dim Data2 As Date
Data1 = TxtDtIni2.Text
Data2 = TxtDtfim3.Text
RSProduto.Open [Ô]Select tblproduto.codprod, tblproduto.descricao. tblsaida.codsaida, tblsaida.codprodsaida, tblsaida.qtdsaida, tblsaida.datasaida [Ô] & _
[Ô]from tblproduto, tblsaida where tblsaida between #[Ô] & Data1 & [Ô]# and #[Ô] & Data2 & [Ô]# and tblsaida.codprodsaida=tblproduto.codprod[Ô], cnn, 3, 3
If Not RSProduto.EOF Then
Set dptsaidadata.DataSource = RSProduto
dptsaidadata.Show
dptsaidadata.Title = [Ô]Relatório de saida do estoque[Ô]
Else
RSProduto.Close
MsgBox [Ô]Não foram encontrados Registros[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End Sub
o erro esta na sql
veja o codigo
Private Sub Command1_Click()
Dim Data1 As Date
Dim Data2 As Date
Data1 = TxtDtIni2.Text
Data2 = TxtDtfim3.Text
RSProduto.Open [Ô]Select tblproduto.codprod, tblproduto.descricao. tblsaida.codsaida, tblsaida.codprodsaida, tblsaida.qtdsaida, tblsaida.datasaida [Ô] & _
[Ô]from tblproduto, tblsaida where tblsaida between #[Ô] & Data1 & [Ô]# and #[Ô] & Data2 & [Ô]# and tblsaida.codprodsaida=tblproduto.codprod[Ô], cnn, 3, 3
If Not RSProduto.EOF Then
Set dptsaidadata.DataSource = RSProduto
dptsaidadata.Show
dptsaidadata.Title = [Ô]Relatório de saida do estoque[Ô]
Else
RSProduto.Close
MsgBox [Ô]Não foram encontrados Registros[Ô], vbInformation, [Ô]Aviso[Ô]
End If
End Sub
o erro esta na sql
Ola andrevb vou testar seu codigo tb ja retorno
Andre.admvb esta dando erro de sintax na sql sua inteira
rs.Open [Ô]SELECT sum(qtdsaida) as QtdTotalSaida FROM produto, saida WHERE codprod = codprodsaida AND datasaida BETWEEN #[Ô] & DATA1 & [Ô]# AND #[Ô] & DATA2 & [Ô]# GROUP BY codprod[Ô]
Só vê se o nome dos campos e tabelas estão certinhos cara!
Boa tarde Ander admvb, eu testei esta funcionado, mas nao acha nada na tabela
na tabela tem dois registros com data 31/07/2009
Que critério está passando como DATA1 e DATA2?
Tópico encerrado , respostas não são mais permitidas