Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/05/2011, 08:22
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Dilema con consulta

Iislas, la consulta que pude yo fue sólo un ejemplo de cómo poder hacerlo, ya que al no tener la estructura de las tablas, ni datos de ejemplos no tengo la posibilidad de hacer una prueba real. Si observas creo una variable tipo tabla e inserto los valores que se supone regresaría la consulta, de esta manera pude hacer algunas pruebas.

La consulta que debería probar jahireffer sería más o menos la siguiente:

Código SQL:
Ver original
  1. SELECT
  2. E.DESCRIPCIO AS PRODUCTO,
  3. CAST(
  4. CASE WHEN LEN(B.PRODUCTO)=6 THEN (B.CANTIDAD)/ISNULL((SELECT MTMERCIA.UNIDADMED FROM MTMERCIA
  5. WHERE MTMERCIA.CODIGO = CASE WHEN LEN(B.PRODUCTO)=6 THEN SUBSTRING(B.PRODUCTO,1,5) ELSE B.PRODUCTO END),'1') ELSE (B.CANTIDAD)
  6. END
  7. AS DECIMAL) AS CANTIDAD,
  8. 'PEDIDO' AS DESC_CANTIDAD
  9. FROM MVTRADE B INNER JOIN TRADE C ON B.ORIGEN=C.ORIGEN AND B.TIPODCTO=C.TIPODCTO AND B.NRODCTO=C.NRODCTO
  10. INNER JOIN MTMERCIA E ON B.PRODUCTO = E.CODIGO
  11. WHERE B.TIPODCTO = 'PD'
  12. UNION
  13. SELECT
  14. E.DESCRIPCIO AS PRODUCTO,
  15. CAST(dbo.F_Saldo_Bodega_Informe(YEAR(GETDATE()),M ONTH(GETDATE()),B.PRODUCTO,'01','T','C') AS DECIMAL) AS CANTIDAD,
  16. 'BODEGA 1' AS DESC_CANTIDAD
  17. FROM MVTRADE B INNER JOIN TRADE C ON B.ORIGEN=C.ORIGEN AND B.TIPODCTO=C.TIPODCTO AND B.NRODCTO=C.NRODCTO
  18. INNER JOIN MTMERCIA E ON B.PRODUCTO = E.CODIGO
  19. WHERE B.TIPODCTO = 'PD'
  20. UNION
  21. SELECT
  22. E.DESCRIPCIO AS PRODUCTO,
  23. CAST(dbo.F_Saldo_Bodega_Informe(YEAR(GETDATE()),M ONTH(GETDATE()),B.PRODUCTO,'69','T','C') AS DECIMAL) AS CANTIDAD
  24. 'BODEGA 2' AS DESC_CANTIDAD
  25. FROM MVTRADE B INNER JOIN TRADE C ON B.ORIGEN=C.ORIGEN AND B.TIPODCTO=C.TIPODCTO AND B.NRODCTO=C.NRODCTO
  26. INNER JOIN MTMERCIA E ON B.PRODUCTO = E.CODIGO
  27. WHERE B.TIPODCTO = 'PD'
  28. ORDER BY 1

Repito que no es la manera más óptima de hacer una consulta, pero es cuestión que jahireffer haga algunas pruebas y nos comente si funciona o no.

Saludos
Leo.