SQL - NADIE PUEDE AYUDARME

 
Vista:

NADIE PUEDE AYUDARME

Publicado por Franklin Reyna C. (15 intervenciones) el 26/07/2001 21:31:23
Como puedo lograr que en una seleccion de varias bases de datos me muestre el resultado agrupado para aquellos registros en que se repita un campo especifico, se que es con group by y having pero no se como usarlos, suponte por ejemplo que tengo un campo que se llama codbl y este puede repetirse y quiero que me acumule el valor de un campo kilos cada vez que codbl se repita. Diganme por favor donde ubicarlo en la siguiente sentencia :

SELECT MA.CODMANI,MA.VIAJE,MA.CODLINE,LI.NOMBRE,BL.CODBL,BL.CODCLIE,CLI1.NOMBRE,BL.CODCON,CLI2.NOMBRE,BL.CODPUOR,PUE.DESCRIP,DET.COMMODI,DET.KILOS,rep.campo6,rep.fecha_ini,rep.fecha_fin,zo.descripcion,BA.descrip,SUM(Kilos)
FROM MANIENCA MA
left JOIN BLENCA BL (NOLOCK)ON
MA.CODMANI = BL.CODMani
left JOIN LINEAS LI (NOLOCK)ON
LI.CODLINE = MA.CODLINE
left JOIN CLIENTES CLI1 (NOLOCK)ON
BL.CODCLIE = CLI1.CODCLIE
left JOIN CLIENTES CLI2 (NOLOCK) ON
BL.CODCON = CLI2.CODCLIE
left JOIN BLDETALLE DET (NOLOCK) ON
BL.CODBL = DET.CODBL
left JOIN PUERTOS PUE (NOLOCK) ON
BL.CODPUOR = PUE.COPUERTO
left JOIN PAISES PA (NOLOCK) ON
PUE.COPAIS = pa.copais
left JOIN ZONAS ZO (NOLOCK) ON
pa.zona = zo.zona
left JOIN REPORTES REP (NOLOCK) ON
zo.zona = rep.campo5
left JOIN BARCOS BA (NOLOCK) ON
ba.codship = ma.codship
where bl.codbl is not null and ma.f_llegada >= rep.fecha_ini and ma.f_llegada <= rep.fecha_fin and rep.campo3 = ma.codline and bl.codpuor = pue.copuerto and pue.copais = pa.copais and pa.zona = zo.zona and zo.zona = rep.campo5 and rep.campo4 = ma.imp_exp and rep.campo7 = det.commodi
group by MA.CODMANI,MA.VIAJE,MA.CODLINE,LI.NOMBRE,BL.CODBL,BL.CODCLIE%2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:NADIE PUEDE AYUDARME

Publicado por alberto (19 intervenciones) el 27/07/2001 09:06:06
Saludos:
En principio, y salvo que falte parte de la consulta, tal como tienes la consulta no debería funcionar ya que no todos los campos que no entran en una función de agrupado, estan en la clausula GROUP BY, por ejemplo el campo BA.descrip debería se uno de los campos de agrupación.
En cuanto a tu consulta, no queda muy claro lo que pretendes hacer, pero la clausula HAVING sirve para restringir los resultados que se presentan y se debe poner despues de la clausula GROUP BY, por ejemplo:
select clientes.ncliente, sum(facturas.total)
from clientes inner join facturas on clientes.codcliente=facturas.codcliente
group by clientes.ncliente
having sum(facturas.total)>1000

presenta el total de las facturas por cliente, pero solo de aquellos cuya suma es mayor que 1000, creo que no es esto lo que pretendes hacer, así que si puedes dar mas detalles quizas pueda resolver tu duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

NADIE PUEDE AYUDARME

Publicado por Franklin Reyna C. (15 intervenciones) el 27/07/2001 14:21:00
Lo que yo quiero es que si el query encuentra dos registros cuyo contenido en el campo det.codbl sea igual me presente agrupados esos dos o tres registros y que me sumarize el contenido del campo det.kilos para esos dos o tres registros como uno solo, esto no se como hacerlo yo supongo que es con el having o el group by. Te muestro un ejemplo.

Tabla detallebl
CODBL kILOS
BL1 150
BL2 200
BL2 100

A
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

NADIE PUEDE AYUDARME

Publicado por Franklin Reyna C. (15 intervenciones) el 27/07/2001 14:22:58
Lo que yo quiero es que si el query encuentra dos registros cuyo contenido en el campo det.codbl sea igual me presente agrupados esos dos o tres registros y que me sumarize el contenido del campo det.kilos para esos dos o tres registros como uno solo, esto no se como hacerlo yo supongo que es con el having o el group by. Te muestro un ejemplo.

Tabla detallebl
CODBL kILOS
BL1 150
BL2 200
BL2 100

Aqui debe totalizar para BL1 150 kilos y para el BL2 un total de 300 kilos

Saludos desde Republica Dominicana
Franklin Reyna C.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar