Skip to Content
author's profile photo Former Member
Former Member

Ayuda con Query

Jovenes expertos solicito nuevamente su ayuda ya que no he podido solucionar mi problemita, me solicitaron una reporte de facturacion de compras en donde se utilice el PLA0001 y PLA0016, utilizando un filtro de fecha, ya genere el query de dos formas explico la primera forma:

  • Tengo este query que me da la informacion como me la solicitaron pero el problema que es que me muestra el listado de proveedores aun cuando no han utilizado el PLA0001 y PLA0016 y me muestra la informacion de esta forma:
Dato Nombre Valor 125468-1 Juan Carlos Ramirez

2000.00

25486-12 Carlos Xavier Grajeda 0.00 789546-1 Hector Humberto Ramirez 1500.00

y claro esto se ve facil lo exporto a excel y elimino los que tiene Valor 0 pero resulta que se necesita que se imprima directamente de SAP sin ninguntipo de manipulacion del usuario. y la verdad no se como hacer en un PLD de SAP para quitar la linea completa con valor cero y que me despliegue lo que si tiene valor.

Este es el query:

SELECT DISTINCT T1.U_DATO, T0.CardCode, T0.CardName,
    ISNULL((SELECT SUM(Y.Gtotal) FROM PCH1 Y INNER JOIN OPCH X ON X.DocEntry=Y.DocEntry 
            WHERE X.CardCode=T0.CardCode AND Y.ItemCode='PLA0001' 
              AND X.U_operado='N' and X.DocDate>='20131118' and X.DocDate<='20131229' AND Y.GTotal>'0')+
          ((SELECT SUM(Y.Gtotal) FROM PCH1 Y INNER JOIN OPCH X ON X.DocEntry=Y.DocEntry 
            WHERE X.CardCode=T0.CardCode AND Y.ItemCode='PLA0016' 
              AND X.U_operado='N' and X.DocDate>='20131118' and X.DocDate<='20131229' AND Y.GTotal>'0')),0)[Valor]
FROM OCRD T0 INNER JOIN 
     OCPR T1 ON T0.CardCode = T1.CardCode
ORDER BY T0.CardName

  • Tengo este otro query que me despliega la informacion pero no realiza la sumatoria y si puedaran ayudarme con esto ya asi seria mas facil para poder hacer un crystal report con este query.
SELECT DISTINCT T1.U_DATO, T0.CardCode, T0.CardName,
    isnull((Select SUM(Y.GTotal) FROM PCH1 Y WHERE (Y.ItemCode = 'PLA0001')AND Y.DocEntry = T2.DocEntry AND Y.GTotal>'0'),0)[Valor],
    isnull((SELECT SUM(X.Gtotal) FROM PCH1 X WHERE (X.ItemCode = 'PLA0016')AND X.DocEntry = T2.DocEntry AND X.GTotal>'0'),0)[Valor1]
FROM OPCH T0 INNER JOIN 
     PCH1 T2 ON T0.DocEntry = T2.DocEntry INNER JOIN
     OCPR T1 ON T0.CardCode = T1.CardCode
WHERE T0.U_Lib_Sal = 'S' AND T0.DocDate>='20131118' and T0.DocDate<='20131229'
GROUP BY T1.U_IGSS, T0.CardCode, T0.CardName, T2.DocEntry, T0.U_Lib_Sal, T0.DocDate, T0.DocEntry,
         T2.GTotal, T2.ItemCode
ORDER BY T0.CardName

espero me pueda ayudar en cualquiera de estos dos query para poder generar el reporte directamente de SAP.

De antemano muy agradecido por su ayuda y tiempo.

Saludos

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • Posted on Jan 20, 2014 at 07:29 PM

    En el primer Query intenta poner dentro del Where la condición que Gtotal sea mayor a cero.

    Deberías poder visualizar solo los datos con valores mayores a 0

    Saludos

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member

      gracias por tu respuesta Marco fijate los subquery si tiene esto que me recomienda he intente colocarlo las tablas en el Form maestro y aun asi me aparecen los provedores con cero. Este es query modificado:

      SELECT DISTINCT T1.U_IGSS, T0.CardCode, T0.CardName,
          ISNULL((SELECT SUM(Y.Gtotal) FROM PCH1 Y INNER JOIN OPCH X ON X.DocEntry=Y.DocEntry 
                  WHERE X.CardCode=T0.CardCode AND Y.ItemCode='PLA0001' 
                    AND X.U_operado='N' and X.DocDate>='20131118' and X.DocDate<='20131229' AND Y.GTotal>'0')+
                ((SELECT SUM(Y.Gtotal) FROM PCH1 Y INNER JOIN OPCH X ON X.DocEntry=Y.DocEntry 
                  WHERE X.CardCode=T0.CardCode AND Y.ItemCode='PLA0016' 
                    AND X.U_operado='N' and X.DocDate>='20131118' and X.DocDate<='20131229' AND Y.GTotal>'0')),0)[Sueldo]
      FROM OCRD T0 INNER JOIN 
           OCPR T1 ON T0.CardCode = T1.CardCode INNER JOIN 
           OPCH T2 ON T0.CardCode = T2.CardCode INNER JOIN
           PCH1 T3 ON T2.DocEntry = T3.DocEntry
           WHERE T3.GTotal>'0'
      ORDER BY T0.CardName
      

      Espero me indiquen en donde esta mi error.

      Saludos y gracias por su ayuda.

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.