tabla no vacia con group by
Hola,
me pasa lo siguiente. Si ejecuto esta query Código:
select codigo from articulos.db where codigo=43 Pero si la query es Código:
SELECTcodigo,sum(1+codigo) FROM articulos.db WHERE codigo=43 GROUP BY CODIGO ¿El sum mete algún registro por defecto? si es así, ¿como comprobar que realmente solo hay ese registro? Gracias a todos Jon |
Cita:
Ten en cuenta que al hacer sum(1+codigo) y siendo 43 el valor del código sumará 44 por cada registro que encuentre. |
hola,
efectivamente esta consulta tal como está no tiene sentido. He puesto esa consulta tan sencilla (a la vez que absurda) para que el problema se entendiera bien y no complicar a nadie con una query más larga que no aporta ninguna mayor información al problema. Incluso en esta query tan sencilla el IsEmpty da False cuando debería ser True. No sé si me he explicado.... Gracias! Jon |
Cita:
Cita:
|
Por lo que veo utiliza Paradox y supongo que la conexión la hará con el BDE?
Un Saludo. |
hola a todos,
efectivamente, tal como dice marcoszorrilla, uso delphi7, paradox, y BDE. Gracias de nuevo |
Saludos
Cita:
Nota: Esto no lo he probado, pero me resulta logico:P:) |
Cita:
|
Recapitulemos
Supongamos una tabla por todos conocida y las siguentes sql...
La primera versión da error ya que la columna codcli, no está incluida en ninguna función de agregado y no hay claúsula GROUP BY. Al añadirla, ya todo corre bien como es normal. La sentencia COUNT devuelve CERO si no encuentra ningún registro, por eso si la tabla está vacía o si ese registro no existe, devolverá CERO. En cualquier otro caso, el valor que le corresponda. La sentencia SUM ignora los valores nulos, por lo menos en T-SQL, por lo que si codcli es null, no debería devolver nada. Ahora bien, a mi también me puede parecer lógico que en otras implementaciones hayan adoptado la postura de devolver cero como la funcion COUNT. Saludos, y buen viaje a los que os vais de vaciones. Y cuidado con las francesas/es. |
Muchas gracias a todos. A mi no me parecía tan lógico, pero supongo que lo será.... Abro otro hilo con otra duda...
Jon |
La franja horaria es GMT +2. Ahora son las 00:46:47. |
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