SQL - Campo de otra tabla condicionalmente en una consulta

   
Vista:

Campo de otra tabla condicionalmente en una consulta

Publicado por Julio Cesar Putaré Yanarico (1 intervención) el 28/04/2012 15:58:40
Buenas Amigos.-
tengo al siguiente duda, tengo la siguiente consulta creada con el nombre de "Rotacion por Almacen":
Código PHP:
SELECT [Relacion entre Local y Almacen].Local, [01 Stock Actual por Sucursal].IdAlm AS Almacen, [01 Stock Actual por Sucursal].Gr, [01 Stock Actual por Sucursal].Sg, SPACE(30) AS Seccion, [02 Catalogo General de Articulos].[Cod Fab], [01 Stock Actual por Sucursal].[No Parte], [01 Estado de Inventario].Descripcion, [01 Stock Actual por Sucursal].StockAct, [01 Estado de Inventario].[Cost Unt], ([01 Stock Actual por Sucursal].StockAct * [01 Estado de Inventario].[Cost Unt]) AS CostoTotal, SPACE(30) AS Cant2010, SPACE(30) AS Total2010, SPACE(30) AS Cant2011, SPACE(30) AS Total2011, SPACE(30) AS Cant2012, SPACE(30) AS Total2012
FROM [02 Catalogo General de Articulos] INNER JOIN ([Relacion entre Local y Almacen] INNER JOIN ([01 Estado de Inventario] INNER JOIN [01 Stock Actual por Sucursal] ON [01 Estado de Inventario].[No Parte] = [01 Stock Actual por Sucursal].[No Parte]) ON [Relacion entre Local y Almacen].[Almacen] = [01 Stock Actual por Sucursal].[IdAlm]) ON [02 Catalogo General de Articulos].[No Parte] = [01 Stock Actual por Sucursal].[No Parte];
que es un select de diferentes tablas, como podran notar he creado columnas vacias:
SPACE(30) AS Cant2010,
SPACE(30) AS Total2010,
SPACE(30) AS Cant2011,
SPACE(30) AS Total2011,
SPACE(30) AS Cant2012,
SPACE(30) AS Total2012
cuyos campos son simbólicos ya que en una nueva consulta(porq que en al misma no se puede) quiero obtener las cantvtas y totalvta siempre y cuando se cumpla la condición que explico:
en una nueva tabla

Setect * (todos los campos de Rotacion por Almacen) (y solo los campos "Cant" y "total Vta" de las tablas (vtas2010, vtas2011, vtas2012)

From [Rotacion por Almacen], Vtas2010, Vtas2011, Vtas2012

Condicion:
si el [Rotacion por Almacen].local = Vtas2010.Idloc and [Rotacion por Almacen].[No Parte] = Vtas2010.[No Parte]
traer el campo Cant de la tabla Vtas2010 en la columna Cant2010 caso contrario "0" fin

si el [Rotacion por Almacen].local = Vtas2010.Idloc and [Rotacion por Almacen].[No Parte] = Vtas2010.[No Parte]
traer el campo Total Vta de la tabla Vtas2010 en la columna Total2010 caso contrario "0" fin

si el [Rotacion por Almacen].local = Vtas2011.Idloc and [Rotacion por Almacen].[No Parte] = Vtas2011.[No Parte]
traer el campo Cant de la tabla Vtas2011 en la columna Cant2011 caso contrario "0" fin

si el [Rotacion por Almacen].local = Vtas2011.Idloc and [Rotacion por Almacen].[No Parte] = Vtas2011.[No Parte]
traer el campo Total Vta de la tabla Vtas2011 en la columna Total2011 caso contrario "0" fin

si el [Rotacion por Almacen].local = Vtas2012.Idloc and [Rotacion por Almacen].[No Parte] = Vtas2012.[No Parte]
traer el campo Cant de la tabla Vtas2012 en la columna Cant2012 caso contrario "0" fin

si el [Rotacion por Almacen].local = Vtas2012.Idloc and [Rotacion por Almacen].[No Parte] = Vtas2012.[No Parte]
traer el campo Total Vta de la tabla Vtas2012 en la columna Total2012 caso contrario "0" fin

los campos de las tablas Vtas2010, 2011, 2012 son:
IdLoc
No Parte
Cant
Total Vta

espero que me allan entendido y espero sus comentarios

gracias

todo esto esta hecho access ok
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