none
registro se duplica RRS feed

  • Pregunta

  • tengo una consulta que me presenta unos documentos de almacen en un rango de fecha y dentro de estas un consulta que me presenta los documentos presentados pasadas las 17 horas pero el problema es que se duplican los totales de tardias en diferentes empresasme explico deberia de salir el nombre de la persona el total de documentos y el total de docuemntos tardiospero para esa empresa sin embargo el total de tardias es igual para los que son de la empresa x como para la empresa Y . espero me puedan ayidar grcias de antemano

    select 	DISTINCT C.COA_DSC,C2.CLIENTED,COUNT(C.COA_DSC) as TOTAL ,Aux.TOTAL_Despues_17 from 	r02e010m11ni_c C inner join 
    (SELECT A.COA_DSC,B.CLIENTED,COUNT (A.COA_DSC) AS TOTAL_Despues_17 FROM r02e010m11ni_c A INNER JOIN r03e010c_camp B ON A.CAMPAN = B.CCOSTO 
    WHERE 
    FCH_OE BETWEEN '01/03/2012' AND '29/03/2012'
    AND A.STAT ='R'
    AND TNOTA  IN ('NS','NR','NI','NU')
    AND FCH_OE=DOC_FCH-1  
    AND HOR_OE   > '17:00' GROUP BY A.COA_DSC, B.CLIENTED) as Aux 
    ON C.COA_DSC = Aux.COA_DSC
    INNER JOIN r03e010c_camp C2 ON C.CAMPAN =C2.CCOSTO 
    WHERE 	
    C.FCH_OE BETWEEN '01/03/2012' AND '29/03/2012'
    AND C.STAT = 'R'
    AND C.TNOTA IN ('NS','NR','NI','NU')
    AND C.FCH_OE=C.DOC_FCH-1 
    group by C.COA_DSC,c2.CLIENTED ,Aux.TOTAL_Despues_17
    order by C.COA_DSC 

    lunes, 26 de marzo de 2012 19:09

Respuestas


  • no se muy bien la lógica que sigues, ni tenemos datos de ejemplo para poder ayudarte  suena como que en total después 17 no estas teniendo en cuenta cliente D por eso aparece el mismo numero una y otra vez. 

    Los cambios que te sugiero están aquí

    select DISTINCT C.COA_DSC,C2.CLIENTED,COUNT(C.COA_DSC) as TOTAL ,Aux.TOTAL_Despues_17 from r02e010m11ni_c C inner join (SELECT A.COA_DSC,B.CLIENTED,COUNT (/*cambio 1*/ DISTINCT A.COA_DSC) AS TOTAL_Despues_17 FROM r02e010m11ni_c A INNER JOIN r03e010c_camp B ON A.CAMPAN = B.CCOSTO WHERE FCH_OE BETWEEN '01/03/2012' AND '29/03/2012' AND A.STAT ='R' AND TNOTA IN ('NS','NR','NI','NU') AND FCH_OE=DOC_FCH-1 AND HOR_OE > '17:00' GROUP BY A.COA_DSC, B.CLIENTED) as Aux ON C.COA_DSC = Aux.COA_DSC /* CAMIBO 2 */ AND C.CLIENTED=AUX.cLIENTEd /* SI no es aquí entonces sería en el siguiente */ INNER JOIN r03e010c_camp C2 ON C.CAMPAN =C2.CCOSTO WHERE C.FCH_OE BETWEEN '01/03/2012' AND '29/03/2012' AND C.STAT = 'R' AND C.TNOTA IN ('NS','NR','NI','NU') AND C.FCH_OE=C.DOC_FCH-1 group by C.COA_DSC,c2.CLIENTED ,Aux.TOTAL_Despues_17 order by C.COA_DSC


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Eder Costa jueves, 29 de marzo de 2012 15:23
    • Marcado como respuesta Eder Costa viernes, 13 de abril de 2012 14:15
    martes, 27 de marzo de 2012 8:54
    Moderador

Todas las respuestas

  • Hola amigo,

    Tu problema esta en la columna TOTAL?

    Saludos

    lunes, 26 de marzo de 2012 19:24
  • el problema me aparece en la columna total despues de 17 en la parte sombreada se duplican los resultados. osea muestra el total pero no cre que de 1 total de notas emitidas 7 esten retrasadas.

    muchas gracias por ayudarme.

    lunes, 26 de marzo de 2012 19:26
  • Amigo,

    Proba con lo siguiente:

    select DISTINCT C.COA_DSC ,Aux.CLIENTED ,COUNT(C.COA_DSC) as TOTAL ,Aux.TOTAL_Despues_17 from r02e010m11ni_c C inner join (SELECT A.COA_DSC ,B.CLIENTED ,COUNT (A.COA_DSC) AS TOTAL_Despues_17 FROM r02e010m11ni_c A INNER JOIN r03e010c_camp B ON A.CAMPAN = B.CCOSTO WHERE FCH_OE BETWEEN '01/03/2012' AND '29/03/2012' AND A.STAT ='R' AND TNOTA IN ('NS','NR','NI','NU') AND FCH_OE=DOC_FCH-1 AND HOR_OE > '17:00' GROUP BY A.COA_DSC, B.CLIENTED) as Aux ON C.COA_DSC = Aux.COA_DSC

    WHERE C.FCH_OE BETWEEN '01/03/2012' AND '29/03/2012' AND C.STAT = 'R' AND C.TNOTA IN ('NS','NR','NI','NU') AND C.FCH_OE=C.DOC_FCH-1 group by C.COA_DSC,Aux.CLIENTED ,Aux.TOTAL_Despues_17 order by C.COA_DSC



    lunes, 26 de marzo de 2012 19:38
  • amigo ahora si muestra los totales tardios pero creo que el agrupamiento lo he llevado mal por que sales el total para ambos clientes de verdad muchas gracias por tu ayuda.si te fijas era 14 y 1 ahora es quince .

    lunes, 26 de marzo de 2012 19:55
  • Amigo,

    Prueba de nuevo la consulta pero sacale el DISTINCT del Select  (Select DISTINCT C.COA_DSC) y comentame los resultados

    Te agrego mi cuenta de msn si quieres lo vemos nano0511@hotmail.com

    Saludos


    lunes, 26 de marzo de 2012 20:01

  • no se muy bien la lógica que sigues, ni tenemos datos de ejemplo para poder ayudarte  suena como que en total después 17 no estas teniendo en cuenta cliente D por eso aparece el mismo numero una y otra vez. 

    Los cambios que te sugiero están aquí

    select DISTINCT C.COA_DSC,C2.CLIENTED,COUNT(C.COA_DSC) as TOTAL ,Aux.TOTAL_Despues_17 from r02e010m11ni_c C inner join (SELECT A.COA_DSC,B.CLIENTED,COUNT (/*cambio 1*/ DISTINCT A.COA_DSC) AS TOTAL_Despues_17 FROM r02e010m11ni_c A INNER JOIN r03e010c_camp B ON A.CAMPAN = B.CCOSTO WHERE FCH_OE BETWEEN '01/03/2012' AND '29/03/2012' AND A.STAT ='R' AND TNOTA IN ('NS','NR','NI','NU') AND FCH_OE=DOC_FCH-1 AND HOR_OE > '17:00' GROUP BY A.COA_DSC, B.CLIENTED) as Aux ON C.COA_DSC = Aux.COA_DSC /* CAMIBO 2 */ AND C.CLIENTED=AUX.cLIENTEd /* SI no es aquí entonces sería en el siguiente */ INNER JOIN r03e010c_camp C2 ON C.CAMPAN =C2.CCOSTO WHERE C.FCH_OE BETWEEN '01/03/2012' AND '29/03/2012' AND C.STAT = 'R' AND C.TNOTA IN ('NS','NR','NI','NU') AND C.FCH_OE=C.DOC_FCH-1 group by C.COA_DSC,c2.CLIENTED ,Aux.TOTAL_Despues_17 order by C.COA_DSC


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Eder Costa jueves, 29 de marzo de 2012 15:23
    • Marcado como respuesta Eder Costa viernes, 13 de abril de 2012 14:15
    martes, 27 de marzo de 2012 8:54
    Moderador
  • Hola.

    ¿Resolviste el problema?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    jueves, 5 de abril de 2012 15:20
    Moderador