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

Select con 2 tablas y agrupadas-..-

Estas en el tema de Select con 2 tablas y agrupadas-..- en el foro de Bases de Datos General en Foros del Web. Hola... Tengo una Consulta que me esta matando... Tengo 2 tablas.... Tabla 1 ( secuencia(int) Nombre(Char) ) Tabla 2 (Fecha (smalldatetime) Tarea_Id (int) Estado_Id (smallint) ...
  #1 (permalink)  
Antiguo 07/02/2004, 14:13
 
Fecha de Ingreso: noviembre-2002
Ubicación: Monterrey N.L. Mexico
Mensajes: 141
Antigüedad: 22 años
Puntos: 0
Select con 2 tablas y agrupadas-..-

Hola... Tengo una Consulta que me esta matando...

Tengo 2 tablas....

Tabla 1 (secuencia(int) Nombre(Char) )

Tabla 2 (Fecha (smalldatetime) Tarea_Id (int) Estado_Id (smallint) Codigo_Id (int) Ruta_id (cha) CodigoInterno_Id (int) Operacion_Id (int) )


y estoy tratando de sacar un Totalizado por Secuencia y por Operacion_id y ordenado por Ruta_id

ya logre sacar el Totalizado por cada uno pero separado... aqui estan mis select:

Select Codigo_id, Sum(Operacion_Id)
from Operador_CargaRg
where Codigo_id <> " "
group by Codigo_id
order by Codigo_id

select Ruta_id, Sum(Operacion_Id)
from Operador_CargaRg
where Ruta_id <> " "
Group by Ruta_id
order by ruta_id

Pero ahora quiero Unirlos.... algo asi

------------Secuencia1--------Secuencia2--------secuencia3
Ruta1-Total-sec1/ruta1 - Total-sec2/ruta1 - Total-sec3/ruta1
Ruta2-Total-sec1/ruta2 - Total-sec2/ruta2 - Total-sec3/ruta2
Ruta3-Total-sec1/ruta3 - Total-sec2/ruta3 - Total-sec3/ruta3

Alguien me puede ayudar. ??
saludos
Luis.R.Acosta
  #2 (permalink)  
Antiguo 07/02/2004, 14:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 3
Antigüedad: 20 años, 9 meses
Puntos: 0
Has una union con las 2 sentencias que tienes, lo que vas a hacer es algo parecido a esto:



select 1 union select 2
  #3 (permalink)  
Antiguo 07/02/2004, 15:20
 
Fecha de Ingreso: noviembre-2002
Ubicación: Monterrey N.L. Mexico
Mensajes: 141
Antigüedad: 22 años
Puntos: 0
Oye Esccii

y esto que significa .???

Column 'Operador_CargaRg.Ruta_id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
  #4 (permalink)  
Antiguo 09/02/2004, 01:15
 
Fecha de Ingreso: noviembre-2002
Ubicación: Monterrey N.L. Mexico
Mensajes: 141
Antigüedad: 22 años
Puntos: 0
Alguien puede ayudarme



saludos
  #5 (permalink)  
Antiguo 09/02/2004, 10:29
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 7 meses
Puntos: 0
Significa que entiende que el group by final es para toda la consulta, prueba a escribirla así:


Select Codigo_id, Sum(Operacion_Id)
from Operador_CargaRg
where Codigo_id <> " "
group by Codigo_id
UNION
SELECT * FROM
(select Ruta_id, Sum(Operacion_Id)
from Operador_CargaRg
where Ruta_id <> " "
Group by Ruta_id
order by ruta_id) AS Tabla2
  #6 (permalink)  
Antiguo 10/02/2004, 00:25
 
Fecha de Ingreso: noviembre-2002
Ubicación: Monterrey N.L. Mexico
Mensajes: 141
Antigüedad: 22 años
Puntos: 0
Teri... Gracias Por contestar....

Fijate que estuve checando tu Query... y me marca el sig. error
An ORDER BY clause is invalid in views, derived tables, and subqueries unless TOP is also specified.

Y estuve checando algunos ejeplos de Group by en Internet. y queria preguntarte....

los 2 campos que utilizo en la tabla son diferentes..
el de codigo_id es INT y el de Ruta_id es Char....

Podria ver algun problema con los campos .???

saludos
Luis.R.Acosta
  #7 (permalink)  
Antiguo 10/02/2004, 06:10
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 7 meses
Puntos: 0
El error que te da no es por eso, es porque las vistas en SQL-Server no pueden estar ordenadas, eso es justo lo que dice el mensaje de error.

Si necesitas que el resultado salga ordenado, créalo como procedimiento almacenado, ahí si puedes ordenar

Un saludo
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:08.