USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  montar esta sql ?
Futura
PORTO FERREIRA
SP - BRASIL
ENUNCIADA !
Postada em 06/07/2005 15:52 hs            
sql = " select [itens_pedido.produto],sum( [itens_pedido.qtde]) as soma  from itens_pedido "
sql = sql  & " where [itens_pedido.pedido] not in(itens_nota.pedido) "
sql = sql  &" group by itens_pedido.produto"
 
Preciso selecionar todos os registros da tabela itens_pedido, que não constam na tabela itens_nota, de preferencia somando-se o campo itens_pedido.qtde, e agrupando por produto. Se alguém puder ajudar na montagem da sql, depois eu jogo em um recordset e gravo nas tabelas respectivas.
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 06/07/2005 17:06 hs            
sql = " select [itens_pedido.produto],sum( [itens_pedido.qtde]) as soma  from itens_pedido "
sql = sql  & " where [itens_pedido.pedido] not in(itens_nota.pedido) "
sql = sql  &" group by itens_pedido.produto"
 
Not IN (Select  Pedido From Itens_Nota)
 
O Resto parece certo...
 
 


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Dana
CANOAS
RS - BRASIL
ENUNCIADA !
Postada em 06/07/2005 17:31 hs            
Olha qual é o BD que vc está usando?
Se for o access vc pode fazer tudo manuel e depois editar os codigos em sql.
Ai vc terá que fazer uns pequenos ajustes que serão apenas de " ou &...
 
Ok......
attt
Daiana

Daiana MoraesEmoções
   
Futura
PORTO FERREIRA
SP - BRASIL
ENUNCIADA !
Postada em 07/07/2005 12:09 hs            
Elieser, fiz assim:
 
sql = "SELECT Itens_Pedido.Produto, SUM(Itens_Pedido.Qtde) as SOMA FROM Itens_Pedido WHERE Itens_Pedido.Pedido NOT IN (SELECT Itens_Nota.Pedido FROM Itens_Nota) GROUP BY Itens_Pedido.Produto"
 
Set tabela = bd.OpenRecordset(sql)
If tabela.RecordCount = 0 Then
  aviso = MsgBox("Não há movimento para os parâmetros", vbInformation + vbOKOnly, "Futura - Aviso ao usuário")
  Exit Sub
 Else
  minha rotina
endif
 
mas no sql ele simplesmente congela, e depois de uns 10 minutos para de responder. o banco é access, e as tabelas estão com uns 100 mil registros cada, em outra consultas apenas em uma tabela, mesmo trazendo pesquisas por periodos de uma mes por exemplo, é praticamente instantaneo o retorno, o que pode ser ?
 
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 07/07/2005 14:14 hs            
Olha, amigo
 
Se vc leu com atençao meu SQL, viu q ele ta fazendo um Select na tabel Itens_Nota a cada linha da tabela Itens_Pedido... realmente em um banco desse tamanho vc vai travar...
 
Posso te dar uma sugestao: Se o banco esta desse tamanho troca o Access por um SGBD, tipo SQLServer ou IB.. vc vai ganhar muito em desenpenho e em confiabilidade... no Access eh praticamente impossivel manter um banco desse tamanho com um nivel de segurança aceitavel...
 
Qto a consulta, vou tentar otimiza-la... se eu encontrar outra solucao, posto aqui mesmo.. veja se eu respondi amanha...
 
Flw!
 


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Futura
PORTO FERREIRA
SP - BRASIL
ENUNCIADA !
Postada em 07/07/2005 14:29 hs            
Elieser, concordo contigo, mas veja, uso access em outros clientes, inclusive tenho um, que o banco ja esta com 3 anos, no qual tenho tabelas com + de 300 mil registros, e como disse, as consultas são super rapidas, uma vez que os campos pesquisados usam indices, outro detalhe, atribuo a eficiencia de meus bds access naõ darem pau, pelo tipo de programação, não uso objetos data, faço tudo via código, com variáveis database e recorsets. O que ocorre neste caso, é que o cliente que é um distribuidor cerâmico, tem sempre pedidos digitados que ainda não foram baixados do estoque ( faturados), então tenho que fornecer o estoque atualizado, mais uma previsão dos pedidos digitados que estão a espera de faturamento, para gerar uma previsão mais real do estoque. Poderia fazer isto, apenas criando um campo de status na tabela, mas pensei em um comando sql, agora se o access não suportar, sem problemas parto pra outra solução.
 
De qualquer forma, só tenho a agradecer pela atenção.
   
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página