SQL Server - Crear un stored procedure que usa 3 tablas

 
Vista:
Imágen de perfil de Jhon Jairo
Val: 1
Ha aumentado su posición en 11 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Crear un stored procedure que usa 3 tablas

Publicado por Jhon Jairo (1 intervención) el 02/06/2017 12:57:36
Hola, necesito hacer esto:
9. Crear un procedimiento almacenado que retorne la cantidad (existencia) de materia prima por producto, indicando el nombre del producto y el nombre de la materia prima. Se debe validar que la materia prima y el producto existan

Estas son las tablas:
1
2
3
4
5
MATPRIMA		MATXPRODUCTO		PRODUCTOTERM
#CodMat		#NroProductoxMat		#CodProd
Nombre		    CodProd			Nombre
Existencia		CodMat			Cantidad
VlrCosto		Cantidad

Esto lo que llevo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Create stored procedure sp_materia_prima_y_producto
Declare @nombre_materia_prima
Declares @nombre_producto_terminado
--Existe la materia prima?
If exists(select nombre from dbo.matPrima where nombre = @nombre_materia_prima)
Begin
 
--Existe el producto?
If exists(select nombre from dbo.productoTerm where nombre = @nombre_producto_terminado)
Begin
Select dbo.matXproducto.cantidad, dbo.matPrima.nombre, dbo.productoTerm.nombre
inner join  dbo.productoTerm on dbo.matXproducto.codProd = productoTerm.codProd
inner join dbo.matPrima on dbo.matXproducto.codMat = matPrima.codMat
where
end
else
print ‘El producto no existe’
 
end
else
‘La materia prima no existe’

sin embargo tengo problemas al culminarlo pues no se que poner en el where
Respuestas por favor, quien quiera insultar absténgase de participar
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Crear un stored procedure que usa 3 tablas

Publicado por Isaias (4558 intervenciones) el 02/06/2017 17:01:47
¿Insultar?, Creo que nadie lo ha insultado, por el contrario en uno de sus ultimas participaciones "amenazo" con irse de este foro.

Siempre mis participaciones han sido CONSTRUCTIVAS, por eso estoy en el primer nivel de participaciones.

Veamos

Primero indiquenos en que motor de base de datos esta trabajando

"Estoy trabajando con SQL Server 2000 sp4 y tengo la siguiente duda..............."

Estas son mis tablas

[dbo].[Tabla2]
[IdLetra] [varchar](5) NULL,
[Valor2] [int] NULL

[dbo].[Tabla1]
[IdLetra] [varchar](5) NULL,
[Valor1] [int] NULL

Como usted nos pone sus tabla, no se entienden (al menos yo, no entiendo la estructura, cobre todo con los que tienen #)

Saludos
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Crear un stored procedure que usa 3 tablas

Publicado por john (3 intervenciones) el 02/06/2017 17:09:13
Amigo, tu consulta es sencilla sin embargo puedes explicarte mejor.

Tambien debes estudiar un poco de como realizar los queries, es facil
con unas horas de practica te daras cuenta que puedes resolverlo y
estaras listo para cosas mas complicadas, intentalo.


saludos.
John.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Crear un stored procedure que usa 3 tablas

Publicado por Isaias (4558 intervenciones) el 03/06/2017 00:39:54
Compañero, le voy a hacer una observacion, MATERIA PRIMA y PRODUCTO se unen mediante la tabla intermedia MATXPRODUCTO, entonces, le hacen falta los ID's de materia prima y producto en las correspondientes tablas.

Una vez hecha la aclaracion, le comparto el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-- Supongo que la ejecucion seria asi
EXECUTE usp_CantidadMateriaPrima 'codproducto', 'codigomateria'
 
-- Creamos el prodcedimiento
CREATE PROCEDURE usp_CantidadMateriaPrima
@CodProdId int,
@MateriaId int
AS
 BEGIN
  SET NOCOUNT ON
  -- Valida que exista el PRODUCTO
  IF NOT EXISTS(SELECT CodProdId FROM #CodProd WHERE CodProd = @CodProdID)
   BEGIN
    SELECT 'El producto indicado, no existe'
	RETURN
   END
  -- Valida que exista la MATERIA PRIMA
  IF NOT EXISTS(SELECT CodMat FROM #CodMat WHERE CodMat = @@MateriaId)
   BEGIN
    SELECT 'El codigo de la materia prima, no existe'
	RETURN
   END
 
   SELECT PRO.Nombre AS Producto
   , MP.Nombre as [Materia Prima]
   , SUM(PM.Existencia) as [Total Existencia]
   FROM #NroProductoxMat MTP INNER JOIN #CodProd PRO ON MTP.CodProd = PRO.CodProd
   INNER JOIN #CodMat MP ON MP.CodMat = MTP.CodMat
   GROUP BY PRO.Nombre, MP.Nombre
 END

Saludos
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