SQL Server - Unir Tablas en SP

 
Vista:

Unir Tablas en SP

Publicado por Manuel Gómez (21 intervenciones) el 09/05/2009 01:33:57
Ola a todos

Quisiera unir dos tablas pero es un caso medio especial:
----------------------------------------------------------------------------------------------------------------------------
CREATE PROC ObtenerDatos(
@strNombreBaseDatos VARCHAR(20),

)
AS
BEGIN

EXEC('SELECT
Presupuesto,
Sucursal,
Serie,
Fecha,
Total
FROM '+@strNombreBaseDatos+'..TablaPresupuesto'
)
END
------------------------------------------------------------------------------------------------------------------------

El cual si ejecuto me produce un resultado, un solo registro en el cual se distingue el campo "Presupuesto" que tiene un unico valor para ese registro.

Quiero unir a este Procedure una Suma de otra tabla. La suma seria así:

(SELECT SUM(CASE WHEN Familia = 13 THEN (Cantidad *PrecioUnitario) END) FROM TablaArticulos WHERE Presupuesto = 579864 AND intFamilia = 13)

AQUI COMENTARÉ que en esta tabla, "TablaArticulos", tiene varios registros, pero los estoy filtrando por el campo "Familia = 13"

Al multiplicar dentro de esa Tabla, la "TablaArticulos", los campos "Cantidad"*"PrecioUnitario" obtengo una columna SIN NOMBRE con varios registros multiplicados pero como decia, al filtrarse con "Familia" = 13, entonces estos registros se reducen cuando el campo "Familia" tiene valor a 13 y posteriormente esta columna SIN NOMBRE se reduce a un registro en el cual es la suma de los registros del campo SIN NOMBRE y me queda algo asi:

---------------------------------------
122566.5500000

(1 row(s) affected)

Como se puede ver en "TablaArticulos" esta el Campo "Presupuesto", QUE ES EL QUE QUIERO UNIR con la tabla del STORED PROCEDURE de arriba llamada "TablaPresupuesto" , Para el ejemplo puse el valor 579864 pero supongo que lo que se debe de hacer arriba es agregar este codigo de la suma y el campo "Presupuesto" de este codigo UNIRLO con el campo de "Presupuesto" del Stored Procedure de arriba de la tabla "TablaPresupuesto"

Entonces la pregunta seria:

¿Como uno la consulta de la suma con el Stored Procedure de arriba y considerando aparte que en ambas tablas están los campos "Sucursal" y "Serie" lo cual pudiera causar conflictos?

Espero su respuesta y gracias de antemano.
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

RE:Unir Tablas en SP

Publicado por Isaias (4558 intervenciones) el 11/05/2009 23:31:07
¿Que version de SQL Server esta manejando?

Si en el segundo query esta filtrando por WHERE Familia = 13, ya no tiene caso hacer un CASE WHEN Familia = 13.
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

RE:Unir Tablas en SP

Publicado por Manuel Gómez (21 intervenciones) el 12/05/2009 01:12:52
Hola Isaias

De antemano muchas gracias por responder.

Estoy usando SQL 2005 MANAGEMENT STUDIO

ME HAS AYUDADO BASTANTE, por que en efecto, el CASE estaba de más, aparte de que me evitaste hacer otra pregunta acerca de este SELECT en particular, pero pos ahi va el select como debe ser:

SELECT Presupuesto, SUM(Cantidad *PrecioUnitario) FROM TablaArticulo WHERE Familia = 13 GROUP BY Presupuesto

Al yo correr esto me aparece lo siguiente:

Presupuesto
-------------- ---------------------------------------
579864 122566.5500000
579865 19668.3200000
579866 8969.4000000

QUE SON LAS SUMAS AGRUPADAS CUANDO "Familia" = 13

Entonces como estos mismos registros están en el procedure que puse e mi primer post , simplemente se trataria de unirlos por la variable en comun "Presupuesto" en base a las especificaciones ahi mencionadas. Ambas tablas en este problema, "TablaPresupuesto" y "TablaArticulo" contienen a la variable "Presupuesto" y ya de lo que se trataria como lo he comentado anteriormente es de meter estas sumas a la tabla de "TablaPresupuesto".

Saludos y gracias de antemano.
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