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

Ayuda QUERY con relacion

Estas en el tema de Ayuda QUERY con relacion en el foro de SQL Server en Foros del Web. Saludos a toda la comunidad, tengo conocimientos Básicos en SQL, y aun así tengo problemas para resolver el siguiente. El problema es este: Código HTML: ...
  #1 (permalink)  
Antiguo 29/07/2008, 08:17
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda QUERY con relacion

Saludos a toda la comunidad, tengo conocimientos Básicos en SQL,
y aun así tengo problemas para resolver el siguiente.



El problema es este:
Código HTML:
Se tienen 2 Tablas,
+Produccion
+Defectos

En la tabla Produccion,   tiene su
-IDproduccion
-Fecha (de produccion)
-Tipo
-Area
-nparte (numero de parte)
-pzabuenas (cantidad de piezas buenas)

En la tabla Defectos, tiene
-ID
-IDproduccion
-CodigodelDefecto
-Cantidad   (cantidad de piezas con el X defecto)
La relacion queda, -IDproduccion 1 Produccion Tiene N Defectos diferentes...
Por Ejemplo
Si en 15/04/2008 hay 3 Capturas 100 pizas

Captura 1: 100pza buenas
-Defectuosas: 3 cod1
-Defectuosas: 1 cod2

Captura 2: 110pza buenas
-Defectuosas: 1 cod1
-Defectuosas: 2 cod2

Captura 3: 101pza buenas

LO CORRECTO SERIA, de las SUMAS TOTALES:
Pza Buenas: 100+110+101 = 311
PzaConDefectos: 3 +1 +1 +2 = 7


Código:
--Tengo el siguiente query
--Select Principal
SELECT CONVERT(VARCHAR(10), fecha, 103) AS Fecha 
 , area AS Area, tipo as Tipo, nparte AS NoParte
 , SUM( pzabuenas) AS Goods 
 , SUM(de.cantidad) AS Rejects

FROM Produccion

--Convinar con Defectuosas

LEFT JOIN Defectos de ON Produccion.IDproduccion = de.IDproduccion

--Valores Condicionales de Filtros
WHERE fecha BETWEEN '2008/04/15' AND '2008/04/15' 
GROUP BY fecha , area, tipo,  nparte
ORDER BY fecha ASC, area ASC, tipo ASC, nparte ASC
//Esto me trae como resultado
Fecha Area Tipo NoPArte Goods Rejects
15/04/2008 area1 tipo1 npartex 521 7

//Y lo que necesito es esto.....
15/04/2008 area1 tipo1 npartex 311 7

Espero que me puedan orientar, gracias
PD:Algun Libro que me recomienden, de SQL?
  #2 (permalink)  
Antiguo 29/07/2008, 17:08
Avatar de ejesus  
Fecha de Ingreso: julio-2008
Mensajes: 26
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda QUERY con relacion

Hola alxrex, chido por tu post en mi problema aun que aun no lo resuelvo, pero aki estoy para recomendarte este link:

http://www.scribd.com/doc/773704/MANUAL-DE-SQL

Me parece que te sera de mucha ayuda es uno de los mejores que puedas encontrar, esta muy completo, espero sea de tu agrado.

atte:"Ejesus"
  #3 (permalink)  
Antiguo 29/07/2008, 18:23
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Respuesta: Ayuda QUERY con relacion

Dejando de lado el uso de las fechas (hay muchos post al respecto en este foro sobre como realizar los filtros de fechas) y utilizando joins (tambien podria hacerse con subquerys correlacionados), este seria un ejemplo de lo que requieres...

espero te sirva..

Código:
--Tengo el siguiente query
--Select Principal
SELECT CONVERT(VARCHAR(10), fecha, 103) AS Fecha 
 , area AS Area, tipo as Tipo, nparte AS NoParte
 , SUM( pzabuenas) AS Goods 
 , SUM(de.Rejects) AS Rejects

FROM Produccion

--Convinar con Defectuosas

LEFT JOIN 
	(
	Select IDproduccion, SUM(cantidad) AS Rejects
    From Defectos 
	Group by IDproduccion
    )de 

ON Produccion.IDproduccion = de.IDproduccion

--Valores Condicionales de Filtros
WHERE fecha BETWEEN cast('20080415' as datetime) AND cast('20080415'  as datetime)
GROUP BY fecha , area, tipo,  nparte
ORDER BY fecha ASC, area ASC, tipo ASC, nparte ASC
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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 03:09.