Hola jahireffer:
Creo que hay una manera de hacer lo que necesitas, con UNION's, pero no sé que tanto le pueda afectar en el rendimiento al servidor, la consulta es bastante repetitiva, pero igual y te puede funcionar, sería más o menos así:
Código SQL:
Ver originalDECLARE @tabla TABLE (PRODUCTO VARCHAR(20), CANT_PEDIDO INT, BODEGA_1 INT, BODEGA_2 INT)
INSERT INTO @tabla VALUES ('silla', 3, 10, 4)
INSERT INTO @tabla VALUES ('mesa', 5, 20, 90)
INSERT INTO @tabla VALUES ('pelota', 0, 409, 0)
INSERT INTO @tabla VALUES ('plato', 2, 120, 18)
INSERT INTO @tabla VALUES ('cama', 600, 409, 234)
INSERT INTO @tabla VALUES ('carro', 239, 189, 0)
INSERT INTO @tabla VALUES ('botella', 150, 98, 0)
INSERT INTO @tabla VALUES ('vaso', 115, 15, 8)
SELECT * FROM @tabla
SELECT producto, cant_pedido cantidad, 'PEDIDO' desc_cantidad FROM @tabla
UNION
SELECT producto, bodega_1 cantidad, 'BODEGA1' desc_cantidad FROM @tabla
UNION
SELECT producto, bodega_2 cantidad, 'BODEGA2' desc_cantidad FROM @tabla
Por otra parte, creo que la consulta que pones se podría optimizas, sobre todo para la parte donde obtienes CANTIDAD_CAJA, ya que estás haciendo una subconsulta sobre la misma tabla MTMERCIA que tienes en tu INNER JOIN. deberías revisar también esa parte.
Saludos
Leo