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

Duda sobre seleccion de datos en 2 tablas

Estas en el tema de Duda sobre seleccion de datos en 2 tablas en el foro de SQL Server en Foros del Web. Hola tengo estE PROCEDIMIENTO ALMACENADO ALTER PROCEDURE [dbo].[InformeStockProductosPorFecha] @FechaInicio datetime, @FechaFin datetime As SELECT IdProducto,sum(CantidadSalida) as Salidas from Salidas Where fecha Between @FechaInicio and @FechaFin ...
  #1 (permalink)  
Antiguo 16/01/2009, 15:41
Avatar de robertgustavo  
Fecha de Ingreso: marzo-2008
Ubicación: Camaná - Arequipa
Mensajes: 213
Antigüedad: 16 años, 9 meses
Puntos: 4
Duda sobre seleccion de datos en 2 tablas

Hola tengo estE PROCEDIMIENTO ALMACENADO


ALTER PROCEDURE [dbo].[InformeStockProductosPorFecha]
@FechaInicio datetime,
@FechaFin datetime
As
SELECT IdProducto,sum(CantidadSalida) as Salidas
from Salidas
Where fecha Between @FechaInicio and @FechaFin
Group by IdProducto

'eso me suma todas las salidas-ventas que ha tenido un producto de fecha x a fecha x , solo de la tabla SALIDAS
sale asi:

IdProducto| SALIDAS
1..........|........... 4

Ahora a esto quiero agregarle datos, osea seleccionar datos de otra tabla, de la tabla Productos, osea que no solo muestre el Id, SINO EL NOMBREPRODUCTO,CATEGORIA,MARCA de la tabla Productos.
PARA QUE SALGA ASI:

IdProducto | NombreProducto | Categoria | Marca | Salidas |


COMO HAGO PARA JALAR ESOS DATOS?? en ese mismo procedimiento
__________________
Soluciones basadas en .NET Framework y SQL Server
  #2 (permalink)  
Antiguo 16/01/2009, 15:57
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Duda sobre seleccion de datos en 2 tablas

Si requieres solo los que tengan salidas cambia el left por un inner ..

Código:
ALTER PROCEDURE [dbo].[InformeStockProductosPorFecha]
@FechaInicio datetime,
@FechaFin datetime
As

Select P.IdProducto
      ,P.NOMBREPRODUCTO
      ,P.CATEGORIA
      ,P.MARCA
      ,isnull(S.Salidas,0)  
From Producto P
Left outer join
   (SELECT IdProducto,sum(CantidadSalida) as Salidas
   from Salidas
   Where fecha Between @FechaInicio and @FechaFin 
   Group by IdProducto) S
On  P.IdProducto = S.IdProducto
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.
  #3 (permalink)  
Antiguo 16/01/2009, 16:17
Avatar de robertgustavo  
Fecha de Ingreso: marzo-2008
Ubicación: Camaná - Arequipa
Mensajes: 213
Antigüedad: 16 años, 9 meses
Puntos: 4
Respuesta: Duda sobre seleccion de datos en 2 tablas

y como haria para seleccionar datos de 1 tabla más, osea de la tabla Entradas
La estructura de la tabla entradas es:

IdEntrada | Fecha | IdProducto | CantidadEntrada

, en el procedimiento ¿como le aumento esa columna? AGRUPADOS POR EL MISMO ID Y LUEGO RESTAR LAS CANTIDADES OSEA CANTIDADENTRADA-CANTIDADSALIDA= SALDOFINAL




LE PUSE ESTO¿ QUE ERRORES TENDRA?
CREO QUE ES AQUI:
On P.Id =J.IdProducto= S.IdProducto

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InformeStockProductosPorFecha]
@FechaInicio datetime,
@FechaFin datetime
As
Select P.Id
,P.descripcion
,P.categoria
,P.marca
,P.StockInicial
,isnull(S.Salida,0)
,isnull(J.Entrada,0)
From Productos P
Left outer join
(SELECT IdProducto,sum(CantidadSalida) as Salida
from Salidas
Where fecha Between @FechaInicio and @FechaFin
Group by IdProducto) S
Left outer join
(SELECT IdProducto,sum(CantidadEntrada) as Entrada
from Entradas
Where fecha Between @FechaInicio and @FechaFin
Group by IdProducto) J
On P.Id =J.IdProducto= S.IdProducto
__________________
Soluciones basadas en .NET Framework y SQL Server

Última edición por robertgustavo; 16/01/2009 a las 17:10
  #4 (permalink)  
Antiguo 16/01/2009, 19:05
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Duda sobre seleccion de datos en 2 tablas

Esto podria ser una forma, solo hay que hacer la liga correctamente...

On


Código:
ALTER PROCEDURE [dbo].[InformeStockProductosPorFecha]
@FechaInicio datetime,
@FechaFin datetime
As
Select P.Id
      ,P.descripcion
      ,P.categoria
      ,P.marca
      ,P.StockInicial
      ,isnull(J.Entrada,0)
      ,isnull(S.Salida,0) 
      ,isnull(J.Entrada,0) - isnull(S.Salida,0)  SaldoFinal
From Productos P
Left outer join
      (SELECT IdProducto,sum(CantidadSalida) as Salida
      from Salidas
      Where fecha Between @FechaInicio and @FechaFin 
      Group by IdProducto) S
On P.Id = S.IdProducto 
Left outer join
      (SELECT IdProducto,sum(CantidadEntrada) as Entrada
      from Entradas
      Where fecha Between @FechaInicio and @FechaFin 
      Group by IdProducto) J
On P.Id = J.IdProducto
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 00:19.