GROUP BY EM INTERVALO DE DATAS
Vbmaniacos, bom dia!
Estou com dúvidas quanto a elaboração de um código que agrupe a soma dos valores vendidos por vendedor em um determinado perÃodo,
entretanto, quando deterimino o perÃodo, não estou conseguindo agrupar um volume trimestral com varias vendas diárias em um só vendedor
para demonstra-lo em uma listview
segue o código
Public Sub abre_geral_vendedor()
Dim scnn As String
Dim newlist As ListItem
Dim nitens As Integer
lista.ListItems.Clear
mycon.Open [Ô]dsn=asgard_salles[Ô]
With mycmd
.ActiveConnection = mycon
.CommandType = adCmdText
.CommandText = [Ô]SELECT vendas190.cliente, cliente190.nome, cliente190.cidade, cliente190.codigo, Sum(vendas190.valor_total) AS SomaDevalor_total, vendas190.vendedor FROM cliente190 INNER JOIN vendas190 ON cliente190.codigo = vendas190.cliente where vendas.vendedor = [Ô] & Val(Me.txtvendedor) & [Ô] and vendas.data between [ô][Ô] & Format(Me.txtinicial, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô] and [ô][Ô] & Format(Me.txtfinal, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô] GROUP BY vendas190.cliente, cliente190.nome, cliente190.cidade, cliente190.codigo, vendas190.vendedor, vendas.data order by 5 desc[Ô]
Set myrs = .Execute
End With
Do Until myrs.EOF
Set newlist = lista.ListItems.Add(, [Ô] Key [Ô] & myrs([Ô]codigo[Ô]), myrs([Ô]codigo[Ô]))
newlist.SubItems(1) = [Ô][Ô] & myrs([Ô]nome[Ô])
newlist.SubItems(2) = [Ô][Ô] & myrs([Ô]cidade[Ô])
newlist.SubItems(3) = Format(myrs!somadevalor_total, [Ô]###,##0.00[Ô])
newlist.SubItems(4) = [Ô][Ô] & myrs([Ô]cliente[Ô])
newlist.SubItems(5) = [Ô][Ô] & myrs([Ô]cliente[Ô])
myrs.MoveNext
Loop
nitens = lista.ListItems.Count
Me.txtclientes = nitens
myrs.Close
Set myrs = Nothing
mycon.Close
End Sub
Desde já agradeço a ajuda
Att
Estou com dúvidas quanto a elaboração de um código que agrupe a soma dos valores vendidos por vendedor em um determinado perÃodo,
entretanto, quando deterimino o perÃodo, não estou conseguindo agrupar um volume trimestral com varias vendas diárias em um só vendedor
para demonstra-lo em uma listview
segue o código
Public Sub abre_geral_vendedor()
Dim scnn As String
Dim newlist As ListItem
Dim nitens As Integer
lista.ListItems.Clear
mycon.Open [Ô]dsn=asgard_salles[Ô]
With mycmd
.ActiveConnection = mycon
.CommandType = adCmdText
.CommandText = [Ô]SELECT vendas190.cliente, cliente190.nome, cliente190.cidade, cliente190.codigo, Sum(vendas190.valor_total) AS SomaDevalor_total, vendas190.vendedor FROM cliente190 INNER JOIN vendas190 ON cliente190.codigo = vendas190.cliente where vendas.vendedor = [Ô] & Val(Me.txtvendedor) & [Ô] and vendas.data between [ô][Ô] & Format(Me.txtinicial, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô] and [ô][Ô] & Format(Me.txtfinal, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô] GROUP BY vendas190.cliente, cliente190.nome, cliente190.cidade, cliente190.codigo, vendas190.vendedor, vendas.data order by 5 desc[Ô]
Set myrs = .Execute
End With
Do Until myrs.EOF
Set newlist = lista.ListItems.Add(, [Ô] Key [Ô] & myrs([Ô]codigo[Ô]), myrs([Ô]codigo[Ô]))
newlist.SubItems(1) = [Ô][Ô] & myrs([Ô]nome[Ô])
newlist.SubItems(2) = [Ô][Ô] & myrs([Ô]cidade[Ô])
newlist.SubItems(3) = Format(myrs!somadevalor_total, [Ô]###,##0.00[Ô])
newlist.SubItems(4) = [Ô][Ô] & myrs([Ô]cliente[Ô])
newlist.SubItems(5) = [Ô][Ô] & myrs([Ô]cliente[Ô])
myrs.MoveNext
Loop
nitens = lista.ListItems.Count
Me.txtclientes = nitens
myrs.Close
Set myrs = Nothing
mycon.Close
End Sub
Desde já agradeço a ajuda
Att
antes de mais nada qual é o banco de dados, qual é o tipo do campo (venda.datas) é do tipo data/hora?
Marcelo,
Realmente, garanto que isso não vai mais acontecer.
O banco de dados e o Mysql e o campo e do tipo Date
Gostaria de usar o intervalo entre as datas para determinar um perÃodo (exemplo: 01/01/2011 a 31/03/2011) e os dados
serem agrupados por cliente.
Nome Cidade: Total
Ricardo Belo horizonte R$1.000,00
Miguel Belo Horizonte R$500,00
E assim por diante,
Desde já agradeço
Realmente, garanto que isso não vai mais acontecer.
O banco de dados e o Mysql e o campo e do tipo Date
Gostaria de usar o intervalo entre as datas para determinar um perÃodo (exemplo: 01/01/2011 a 31/03/2011) e os dados
serem agrupados por cliente.
Nome Cidade: Total
Ricardo Belo horizonte R$1.000,00
Miguel Belo Horizonte R$500,00
E assim por diante,
Desde já agradeço
primeira tentativa seria esta, alterar o formato da data
.CommandText = [Ô]SELECT vendas190.cliente, cliente190.nome, cliente190.cidade, cliente190.codigo, Sum(vendas190.valor_total) AS SomaDevalor_total, vendas190.vendedor FROM cliente190 INNER JOIN vendas190 ON cliente190.codigo = vendas190.cliente where vendas.vendedor = [ô][Ô] & Val(Me.txtvendedor) & [Ô][ô] and vendas.data between [ô][Ô] & Format(Me.txtinicial, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] and [ô][Ô] & Format(Me.txtfinal, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] GROUP BY vendas190.cliente, cliente190.nome, cliente190.cidade, cliente190.codigo, vendas190.vendedor, vendas.data order by 5 desc[Ô]
Marcelo, boa tarde!
Desculpe-me a demora em responder.
bom... fiz da forma sugerida más, o problema está em agrupar datas diferentes para gerar a curva abc, tipo:
tenho 05 clientes que me compraram em 3 meses; sendo que um deles me comprou 1 vez o outro 2 vezes e o terceiro 4 vezes em dias diferentes.
mando agrupar o cliente (ok) mando somar os valores (ok), entretanto, quando ha datas diferentes os dados não são agrupados.
Teria uma forma de usar as datas (filtro por perÃodo) no select e enviar os dados agrupados para um listview?
Att.
Desculpe-me a demora em responder.
bom... fiz da forma sugerida más, o problema está em agrupar datas diferentes para gerar a curva abc, tipo:
tenho 05 clientes que me compraram em 3 meses; sendo que um deles me comprou 1 vez o outro 2 vezes e o terceiro 4 vezes em dias diferentes.
mando agrupar o cliente (ok) mando somar os valores (ok), entretanto, quando ha datas diferentes os dados não são agrupados.
Teria uma forma de usar as datas (filtro por perÃodo) no select e enviar os dados agrupados para um listview?
Att.
tente tirar o vendas.data do group by
Tópico encerrado , respostas não são mais permitidas