on 07-24-2012 12:03 AM
Expertos consultores, disculpen tengo el siguiente query que deveria darme el dato de facturacion en base a un items y si me lo da pero me adiciona una 90 lineas con valor cero y haciendo cuadre no deveria de hacer esto el query hay alguna forma de que esas 90 lineas no aparecieran ya que los datos que me refleja son los correctos.
les dejo el query que utilice:
SELECT DISTINCT T1.U_Factura, T0.CardName, --T0.CardCode,
ISNULL((SELECT SUM(A.Gtotal) FROM PCH1 A INNER JOIN OPCH X ON X.DocEntry=A.DocEntry WHERE X.CardCode=T0.CardCode AND A.ItemCode='01-522159' AND X.U_operado='N' and X.DocDate>='[%0]' and X.DocDate<='[%1]'),0)[Total]
FROM OPCH T0 INNER JOIN OCPR T1 ON T0.CardCode = T1.CardCode
Se me habia ocurrido crear una tabla virtual con este query pero no sabria como hacer que lo filtre por fecha ya necesito que lo filtre por fecha ya que el rango de fechas no es el mes exacto sino puede ser del 02 del mes hasta el 01 del mes siguiente.
Espero me puedan ayudar de antemano muy agradecido por su ayuda.
Saludos
He estado analizando la query que tienes y esta muy extraña, te puedo ayudar en lo que puedo analizar:
1. Estas cruzando con un inner join la tabla de factura de proveedores con la de contactos de socio de negocios,y muestras un campo de usuario en la tabla de contactos que se llama factura, eso quiere decir que se te repetira la factura por cada contacto que tenga el proveedor
2. Por otro lado estas haciendo una query sobre las facturas de proveedores, y a ella tienes asociada una subquery que tambien llama tabla de factura de proveedores pero no tienes linkeada el docentry
Esto esta muy extraño.
Si tu ,me preguntas a mi y yo deseara montos facturados a un proveedor especifico, yo cruzaria proveedor con factura proveedores y con lineas de facturas y agruparia, seria algo asi:
select t0.CardCode,t0.CardName,SUM(t2.GTotal)
FROM
ocrd t0
inner join opch t1 on t0.cardcode=t1.cardcode
inner join pch1 t2 on t1.docentry=t2.docentry
inner join oitm t3 on t2.itemcode=t3.itemcode and t2.itemcode='01-522159'
where t1.u_operado='N' and and t1.DocDate>='[%0]' and t1.DocDate<='[%1]'
group by t0.CardCode,t0.CardName
En esta query saque el cruce de los contactos ya que no me queda claro para que usas el campo de usuario de la tabla de contactos u_factura
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.