Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-01-2015
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 22
Toni Va por buen camino
Problema con group by

Buenas tardes!

Tengo un problema en una aplicación de inventarios que al validar el inventario hay algunos registros que no los procesa. Tengo la constancia que dichos registros estan, pero el procedimiento almacenado que procesa todo la tabla en cuestión parece saltarse algun que otro registro. De unos 1.000 registros me han reportado unos 3 fallos 'misteriosos'. Como son unos procesos que funcionan hace mucho tiempo y nunca dieron problemas, lo primero que pienso es que han hecho algo mal. Por este motivo les hice que me guardasen unos listados con la información de las tablas implicadas y asi poder buscar el problema.

Resumiendo un poco, ya he descartado el fallo del usuario, tengo constancia de que existian unos registros de inventario pero al realizar el proceso de validacion se ha vuelto a dejar por procesar unos registros. Todo esto deja constancia en otra tabla y esta evidencia que no se procesaron dichos registros.

Concluyendo, tengo localizado el problema en un procedimiento almacenado en el bucle principal que hace una agrupación por producto y la clave principal es ("idEmpresa","idAlmacen", "idProducto")

Código SQL [-]

  FOR SELECT "idProducto" FROM "Inventario"
  WHERE "idEmpresa"=:P_EMPRESA and "idAlmacen"=:P_ALMACEN
  GROUP BY "idEmpresa","idAlmacen", "idProducto"
  INTO :V_PRODUCTO DO
  BEGIN

     REGISTRO_PRODUCTO_PROCESADO;

     AJUSTE_STOCKS_PRODUCTO;

  END

Pues parece ser que por alguna razon esta select agrupada no retorna algun registro. Antes de decir tal cosa me he asegurado en averiguar que el dato que no 'procesa' estaba. He intentado reproducir el problema haciendo la select desde el EMS Manager, haciendo la misma operativa que han realizado los operacios (ya que tengo las copias de seguridad del antes y despues) y no consigo reproducirlo.

Este procedimiento que comento deja constancia en otra tabla de cada registro que procesa y no hay nada sobre estos registros que como ya dije si estaban, tanto en el listado justo antes de hacer el proceso como en la copia de la base de datos anterior.

La pregunta es: en el supuesto de que tenga razon y falle esta simple select de agrupación que creeis que podria ser?

Os pongo un ejemplo de que me refiero, por ejemplo podria ser como hace Firebird con comparaciones cuando hay datos a NULL, que no los tiene en consideración y el resultado parece extraño cuando no se sabe como actua.

Se os ha dado algun caso similar?
__________________
Saludos,

Bitman

Última edición por Toni fecha: 16-01-2015 a las 21:22:04.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda problema con group by Rofocale Varios 12 12-05-2011 21:24:38
Problema con Group by david_uh Firebird e Interbase 2 13-04-2008 20:37:08
Problema con group by apicito SQL 7 23-05-2006 08:32:25
problema con group by raudelink SQL 2 18-10-2004 21:19:05
Problema con Group en qreport seken Impresión 1 18-06-2003 23:32:50


La franja horaria es GMT +2. Ahora son las 08:19:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi