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

ayuda urgente consulta, error clausula order by

Estas en el tema de ayuda urgente consulta, error clausula order by en el foro de SQL Server en Foros del Web. Hola, necesito ayuda en la siguiente consulta: tengo una tabla CAMPINGS (CamId,CamNombre,Cambicacion,.....) despues tengo una ALQUILERES(CamId,UnidadId,ClienteId......) que tiene como FK CamId lo que necesito es ...
  #1 (permalink)  
Antiguo 02/12/2009, 09:50
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
ayuda urgente consulta, error clausula order by

Hola, necesito ayuda en la siguiente consulta:
tengo una tabla CAMPINGS (CamId,CamNombre,Cambicacion,.....)
despues tengo una ALQUILERES(CamId,UnidadId,ClienteId......) que tiene como FK CamId
lo que necesito es seleccionar los datos del camping que ha sido alquilado mas cantidad de veces, no tengo idea de como sacar eso, lo intente con un count pero no es suficiente porque necesito saber cual es el que se alquilo mas veces, muchas gracias, les muestro lo que estuve probando pero me da error en el group by (La columna 'CAMPINGS.CampId' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.):
esta es la consulta:

SELECT top 1 C.CampId, C.CamNombre,C.CamUbicacion,C.CamTipo,C.CosIngreso, C.TotCarpa, C.TotCaba,
SUM((C.CosIngreso + U.Costo) * Dias) AS Ganancia, COUNT(A.CampId) AS vecesalquilado
FROM CAMPINGS C INNER JOIN ALQUILERES A ON
A.CampId=C.CampId INNER JOIN UNIDADES U ON U.UnidadId=A.UnidadId
order by COUNT(A.CampId) DESC
  #2 (permalink)  
Antiguo 02/12/2009, 10:20
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: ayuda urgente consulta, error clausula order by

No son los mismos nombres de campos pero para que te sirva, esto nos devuelve toda la lista ordenada por el TOTAL en orden descendente:

select CAMPINGS.nombre,count(ALQUILERES.id) as TOTAL from CAMPINGS left join ALQUILERES on CAMPINGS.id=ALQUILERES.idcamping group by CAMPINGS.id order by TOTAL DESC

Si queremos solo 1 valor, pues añadimos LIMIT al final

select CAMPINGS.nombre,count(ALQUILERES.id) as TOTAL from CAMPINGS left join ALQUILERES on CAMPINGS.id=ALQUILERES.idcamping group by CAMPINGS.id order by TOTAL DESC LIMIT 0,1

Si quieres añadir condiciones WHERE las pondriamos tal que asi:

select CAMPINGS.nombre,count(ALQUILERES.id) as TOTAL from CAMPINGS left join ALQUILERES on CAMPINGS.id=ALQUILERES.idcamping where ALQUILERES.mes>5 group by CAMPINGS.id order by TOTAL DESC LIMIT 0,1

A ver si te sirve! saludos y buen karma
  #3 (permalink)  
Antiguo 02/12/2009, 10:34
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: ayuda urgente consulta, error clausula order by

Has probado asi?
Código sql:
Ver original
  1. SELECT C.CampId, C.CamNombre, C.CamUbicacion, C.CamTipo, C.CosIngreso, C.TotCarpa, C.TotCaba,
  2. SUM((C.CosIngreso + U.Costo) * Dias) AS Ganancia, COUNT(A.CampId) AS VecesAlquilado
  3. FROM CAMPINGS C
  4. INNER JOIN ALQUILERES A ON C.CampId = A.CampId
  5. INNER JOIN UNIDADES U ON A.UnidadId = U.UnidadId
  6. GROUP BY C.CampId, C.CamNombre, C.CamUbicacion, C.CamTipo, C.CosIngreso, C.TotCarpa, C.TotCaba
  7. ORDER BY COUNT(A.CampId) DESC
Vun, en SQL Server no hay LIMIT 0,1, para eso usamos TOP n.
Saludos!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 02/12/2009, 10:50
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: ayuda urgente consulta, error clausula order by

Mil gracias flaviovich! funciono correctamente, era ese group by que me estaba complicando, de verdad muchas gracias, me salvaste la vida!
de todas formas muchas gracias vun por contestar,
Saludos!
  #5 (permalink)  
Antiguo 02/12/2009, 14:42
uv3
 
Fecha de Ingreso: noviembre-2009
Mensajes: 31
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: ayuda urgente consulta, error clausula order by

gracias a mi tambien me sirvio :D
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 18:58.