AJUDA COM SELECT
Dim CP as string
Set T1=db.OpenRecordset("Select * From tblVendas Where Data>=CDate('" & DTI & "') and Data<=Cdate('" & DTF & "')")
Set T2=db.openRecordset("tblTempVenda")
Do While not t1.eof
if cp<> t1!cupom then
Set T3=db.openRecordset("Select sum(Qtde*Valor) as Tot From tblVendas Where Cupom='" & t1!Cupom & "'")
T2.AddNew
T2!Data=T1!Data
t2!TotalVEnda=T3!Tot
set T4=db.OpenRecordset("Select Cliente From tblCliente Where CodCli='" & t1!CodCli & "'")
if not T4.EOf then
T2!Cliente=T4!Cliente
end if
t4.close
Set t4=db.OpenRecordset("Select Produto From tblProduto Where CodProd='" & t1!CodPro & "'")
if not T4.eof then
T2!Produto=T4!Produto
endif
T4.close
T2!Cupom=T1!Cupom
T2.UpDate
end if
CP=t1!Cupom
T1.MoveNext
Loop
T1.close
T2.Close
Viram quantas tabelas são abertas para somar o valor de cada venda. Na tabela venda ficam apenas o código do cliente,codigo do produto,Codigo da Marca que é pega também só que eu não coloquei para dimunuir o tamnho.
Existe um jeito que eu possa fazer tudo isso sem abrir tantas tabelas. pois os 28000 registros referem-se a apenas 2500 vendas, só que cada venda(cupom) tem 900,3000 itens que é o que somada.
Set T1=db.OpenRecordset("Select * From tblVendas Where Data>=CDate('" & DTI & "') and Data<=Cdate('" & DTF & "')")
Set T2=db.openRecordset("tblTempVenda")
Do While not t1.eof
if cp<> t1!cupom then
Set T3=db.openRecordset("Select sum(Qtde*Valor) as Tot From tblVendas Where Cupom='" & t1!Cupom & "'")
T2.AddNew
T2!Data=T1!Data
t2!TotalVEnda=T3!Tot
set T4=db.OpenRecordset("Select Cliente From tblCliente Where CodCli='" & t1!CodCli & "'")
if not T4.EOf then
T2!Cliente=T4!Cliente
end if
t4.close
Set t4=db.OpenRecordset("Select Produto From tblProduto Where CodProd='" & t1!CodPro & "'")
if not T4.eof then
T2!Produto=T4!Produto
endif
T4.close
T2!Cupom=T1!Cupom
T2.UpDate
end if
CP=t1!Cupom
T1.MoveNext
Loop
T1.close
T2.Close
Viram quantas tabelas são abertas para somar o valor de cada venda. Na tabela venda ficam apenas o código do cliente,codigo do produto,Codigo da Marca que é pega também só que eu não coloquei para dimunuir o tamnho.
Existe um jeito que eu possa fazer tudo isso sem abrir tantas tabelas. pois os 28000 registros referem-se a apenas 2500 vendas, só que cada venda(cupom) tem 900,3000 itens que é o que somada.
Dependendo do modelo do seu banco, é possÃÂÂvel você fazer relacionamento entre elas e retorna os totais de vendas por cliente. Com esta alteração, que fará o serviço sujo será o banco de dados, e a sua aplicação ficará mais leve e até terá um ganho de performance quando executar este relatório.
Arnaldo, para melhorar o entendimento, poste a estrutura de suas tabelas, bem como seus relacionamentos, vai ajudar bastante, se não puder, então elabore um DER (Diagrama de Relacionamentos).
Mas já estou tentando fazer algo pra você.
Mas já estou tentando fazer algo pra você.
Ver se cheguei perto, tente adaptar a seu problema.
Set T1=db.OpenRecordset(Select (Select sum(Qtde*Valor) as Tot From tblVendas ve Where ve.cupom=v.Cupom),(Select Cliente From tblCliente c Where c.CodCli=v.CodCli),(Select Produto From tblProduto p Where p.CodProd=v.CodPro) From tblVendas v Where v.CodCli=c.CodCli AND v.CodPro=p.CodProd AND v.Data>=CDate('" & DTI & "') and v.Data<=Cdate('" & DTF & ")"
Ve se da certo assim, mas é +/- assim
Ve se da certo assim, mas é +/- assim
Faz uma store procedure pra isso.
Tópico encerrado , respostas não são mais permitidas