Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

duda select

Estas en el tema de duda select en el foro de Bases de Datos General en Foros del Web. Bueno pues tengo una sentencia desde java tal asi select a, b, select count from ........... where ......... order by count El count no es ...
  #1 (permalink)  
Antiguo 29/11/2008, 12:52
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
duda select

Bueno pues tengo una sentencia desde java tal asi

select a, b, select count from ........... where ......... order by count

El count no es count(*)
tampoco es count(disctinct c)

sino que tiene dos parametros porque la llave tiene dos atributos
por eso tengo que hacer asi:

select r, t, count(*)........ Y me devuelve 3 atributos pero
necesito solo uno porque el resultado de esta instruccion la utilizo
en order by

alguna idea
  #2 (permalink)  
Antiguo 29/11/2008, 19:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda select

1. SI el COUNT no es la función COUNT(), entonces no lo puedes usar, porque es palabra reservada en todos los motores de bases de datos y te dará error.
2. No puedes usar un SELECT dentro del SELECT de una sentencia porque a) es palabra reservada, y b) generará un error al pretender interpretar la subconsulta.
3. Lo que tienes es un mal manejo del SQL (sin ofender), ya que lo que buscas hacer es lo que se obtiene con subconsultas, las que son parte de los DBMS desde hace mucho.
4. Si lo que pretendes es obtener un sólo parámetro, entonces el select debe ser contra un sólo campo, no más. Lo que debes hacer es afinar el predicado de la consulta (el WHERE) de modo que solamente te pueda devolver un valor de un sólo campo.
5. Si tu problema es que la clave es una clave compuesta, en este caso por dos atributos, entonces esos atributos se deben poner en el WHERE para que devuelva el registro buscado, y solamente poner:
Código sql:
Ver original
  1. SELECT a
  2. FROM tabla
  3. WHERE b = valor1 AND cnt = valor2;

Cita:
Cuidado con las palabras reservadas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:00.