CONSULTA SQL AGRUPAR E SOMAR POR PERIODO
OLa pessoal, estou precisando da ajuda do forum, eu fiz uma sql pra agrupar itens mas nao esta funcionando
eu tenho estas estrutura de tabelas
tblbase
codbase e nomebase
tblconsumido
dataconsumo , produtoconsumido, qtdconsumo
no caso produtoconsumido tras o codigo do produto da codbase
eu relacionei os campos ambos numericos
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) , [Ô] &_
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]# [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
no caso a a consulta teria q pesquizar por data agrupar e somar o totais da cada item num periodo
agradeco desde ja a ajuda
eu tenho estas estrutura de tabelas
tblbase
codbase e nomebase
tblconsumido
dataconsumo , produtoconsumido, qtdconsumo
no caso produtoconsumido tras o codigo do produto da codbase
eu relacionei os campos ambos numericos
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) , [Ô] &_
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]# [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
no caso a a consulta teria q pesquizar por data agrupar e somar o totais da cada item num periodo
agradeco desde ja a ajuda
bom cara, to vendo uma vÃrgula bem na primeira linha que deve tá dando o problema:
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) [txt-color=#e80000],[/txt-color] [Ô] &_
parece que vc tá usando ACCESS. nos critérios da cláusula BETWEEN Data1 e Data2 estão no formato americano mm/dd/yyyy ? Isso é importante.
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) [txt-color=#e80000],[/txt-color] [Ô] &_
parece que vc tá usando ACCESS. nos critérios da cláusula BETWEEN Data1 e Data2 estão no formato americano mm/dd/yyyy ? Isso é importante.
[ô]se for agrupor por data esta errado
[ô]ai vc ta agrupando por nomebase
[ô]esse exemplo que atualizei vai agrupor por dia, mas vc pode agrupar por mes, ano, semana, etc...
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) soma_qtd [Ô] &_
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]# [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase,b.dataconsumo [Ô], cnn, 3, 3
[ô]ai vc ta agrupando por nomebase
[ô]esse exemplo que atualizei vai agrupor por dia, mas vc pode agrupar por mes, ano, semana, etc...
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) soma_qtd [Ô] &_
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]# [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase,b.dataconsumo [Ô], cnn, 3, 3
pessoal desculpe a demora vou testar o codigo acg1574
O Acg descuple a demora mas esta dando erro direto no fonte qdo colei seu codigo ele ja ficou vermelho desculpe a demora
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) soma_qtd [Ô] & _
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]# [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase,b.dataconsumo [Ô], cnn, 3, 3
estava faltando um espaço no &_ tente testar o código do colega agc agora
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]# [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase,b.dataconsumo [Ô], cnn, 3, 3
estava faltando um espaço no &_ tente testar o código do colega agc agora
sSql2 = [Ô][Ô]
sSql2 = sSql2 & [Ô] select a.codbase,a.nomebase,[Ô]
sSql2 = sSql2 & [Ô] sum(b.qtdconsumo) as soma_qtd [Ô]
sSql2 = sSql2 & [Ô] From[Ô]
sSql2 = sSql2 & [Ô] tblbase a,tblconsumido b [Ô]
sSql2 = sSql2 & [Ô] Where[Ô]
sSql2 = sSql2 & [Ô] a.dataconsumo between [ô][Ô] & Format(DTIni.Value, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô] And [ô][Ô] & Format(DtFim.Value, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô][Ô]
sSql2 = sSql2 & [Ô] group by a.codbase,a.nomebase,b.daaconsumo[Ô]
rsproduto.CursorLocation = adUseClient
rsproduto.Open sSql2, Conexao, adOpenStatic, adLockReadOnly
obs: o exemplo que fiz foi em cima de mysql. no acess o do luiz comino resolve seu problema.
sSql2 = sSql2 & [Ô] select a.codbase,a.nomebase,[Ô]
sSql2 = sSql2 & [Ô] sum(b.qtdconsumo) as soma_qtd [Ô]
sSql2 = sSql2 & [Ô] From[Ô]
sSql2 = sSql2 & [Ô] tblbase a,tblconsumido b [Ô]
sSql2 = sSql2 & [Ô] Where[Ô]
sSql2 = sSql2 & [Ô] a.dataconsumo between [ô][Ô] & Format(DTIni.Value, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô] And [ô][Ô] & Format(DtFim.Value, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô][Ô]
sSql2 = sSql2 & [Ô] group by a.codbase,a.nomebase,b.daaconsumo[Ô]
rsproduto.CursorLocation = adUseClient
rsproduto.Open sSql2, Conexao, adOpenStatic, adLockReadOnly
obs: o exemplo que fiz foi em cima de mysql. no acess o do luiz comino resolve seu problema.
OLA AMIGOS FELIZ NATAL A TODOS, CORRIGI OS ERROS NOS ESPACOS , MAS ESTA DANDO UM ERRO
OPERACAO NAO PERMITIDA NESTE CONTEXTO SERA Q A DATA
O CODIGO ATUAL ABAIXO
Dim Data1 As String
Dim Data2 As String
Data1 = Format(TxtDtIni2.Text, [Ô]dd/mm/yyyy[Ô])
Data2 = Format(TxtDtfim3.Text, [Ô]dd/mm/yyyy[Ô])
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) soma_qtd [Ô] & _
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]#[Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
OPERACAO NAO PERMITIDA NESTE CONTEXTO SERA Q A DATA
O CODIGO ATUAL ABAIXO
Dim Data1 As String
Dim Data2 As String
Data1 = Format(TxtDtIni2.Text, [Ô]dd/mm/yyyy[Ô])
Data2 = Format(TxtDtfim3.Text, [Ô]dd/mm/yyyy[Ô])
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, sum(b.qtdconsumo) soma_qtd [Ô] & _
[Ô]FROM tblbase a, tblconsumido b [Ô] & _
[Ô]WHERE a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]#[Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
se não me angeano só funcionaria se os campos possuissem o mesmo nome, então no caso vc poreia usar o inner join.
Dim Data1 As String
Dim Data2 As String
Data1 = Format(TxtDtIni2.Text, [Ô]dd/mm/yyyy[Ô])
Data2 = Format(TxtDtfim3.Text, [Ô]dd/mm/yyyy[Ô])
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, b.produtocinsumido, b.dataconsumo, sum(b.qtdconsumo) AS soma_qtd [Ô] & _
[Ô]FROM tblbase a INNER JOIN tblconsumido b [Ô] & _
[Ô]ON a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND (b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]#) [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
Obrigado marcelo treze, mas o erro perciste o mesma mensagem
operacao nao permitida neste contexto
runtime error 3219
no vb o erro e setado nesta linha em amarelo
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
operacao nao permitida neste contexto
runtime error 3219
no vb o erro e setado nesta linha em amarelo
[Ô]GROUP BY a.codbase, a.nomebase[Ô], cnn, 3, 3
então faça dois teste
primeiro tire o groupb y
depois faça alterando o group by assim
primeiro tire o groupb y
depois faça alterando o group by assim
Dim Data1 As String
Dim Data2 As String
Data1 = Format(TxtDtIni2.Text, [Ô]dd/mm/yyyy[Ô])
Data2 = Format(TxtDtfim3.Text, [Ô]dd/mm/yyyy[Ô])
RSProduto.Open [Ô]SELECT a.codbase, a.nomebase, b.produtocinsumido, b.dataconsumo, sum(b.qtdconsumo) AS soma_qtd [Ô] & _
[Ô]FROM tblbase a INNER JOIN tblconsumido b [Ô] & _
[Ô]ON a.codbase = b.produtoconsumido [Ô] & _
[Ô]AND (b.dataconsumo [Ô] & _
[Ô]BETWEEN #[Ô] & Data1 & [Ô]# AND #[Ô] & Data2 & [Ô]#) [Ô] & _
[Ô]GROUP BY a.codbase, a.nomebase, b.produtocinsumido, b.dataconsumo,soma_qtd[Ô], cnn, 3, 3
Tópico encerrado , respostas não são mais permitidas