none
en sql , como puedo mostrar solo aquellos articulos donde la suma del total <>0 , en cada año y mes RRS feed

  • Pregunta

  • que tal  ,  espero me puedan  echar la mano     de  un total de  datos  necesito mostrar  todos aquellos que la suma del  total real  sin iva   sea diferente  de 0  por cada articulo , mes  y año
    este es el codigo que tengo
    select 

    [row_number],[asiento],[documento],[tipo de documento],[codigo receta],[articulo receta]
    ,[codigo articulo],[articulo],[proyecto],[partida],[subpartida],[concepto],[linenum]
    ,[acctcode],[cantidad],[total linea],[iva],[total doc.],[cuenta contable],[documento base]
    ,[total real],[descuento],[total asiento],[total produccion],[orden de  fabricacion],[tipo]
    ,[status],[ref. Sistemas],[desviacion],[f. Entrega],[total entregado],[presupuesto],[oc/total]
    ,[comentario],[grupo],[activo/inactivo],[en/total],[avance],[fecha contable],[total terminado]
    ,[superficie],[nombre socio],[total real sin iva]
    from [ferterra].[dbo].[inmuebles] as b
     group  by
    [row_number],[asiento],[documento],[tipo de documento],[codigo receta],[articulo receta]
    ,[codigo articulo],[articulo],[proyecto],[partida],[subpartida],[concepto],[linenum]
    ,[acctcode],[cantidad],[total linea],[iva],[total doc.],[cuenta contable],[documento base]
    ,[total real],[descuento],[total asiento],[total produccion],[orden de  fabricacion],[tipo]
    ,[status],[ref. Sistemas],[desviacion],[f. Entrega],[total entregado],[presupuesto],[oc/total]
    ,[comentario],[grupo],[activo/inactivo],[en/total],[avance],[fecha contable],[total terminado]
    ,[superficie],[nombre socio],[total real sin iva]
    having
    (select  
      [total real]
     from [ferterra].[dbo].[inmuebles sumatorias] as a
     where  [año]=year(b.[fecha contable])  and [mes]= month(b.[fecha contable]) and b.[codigo articulo]= [codigo articulo])<>0

    Pero no me da el resultado esperado es decir
    si el articulo en el mes 1 y año 1 donde el total es diferente que 0 se debe mostrar
    y si ese mismo articulo en el mes 2 año 1 es igual a 0 no se debe mostrar

    ojala me puedan  ayudar 

    saludos

    jueves, 14 de septiembre de 2017 21:31

Todas las respuestas

  • No veo necesario que agrupes los resultados porque la lista de selección no muestra ningún valor de grupo resumido.

    SELECT [row_number],[asiento],[documento], ...
    FROM [ferterra].[dbo].[inmuebles] AS b 
    WHERE EXISTS (SELECT 1 FROM [ferterra].[dbo].[inmuebles sumatorias]
        WHERE [año] = YEAR(b.[fecha contable]) AND [mes] = MONTH(b.[fecha contable]) AND 
    	   b.[codigo articulo] = [codigo articulo] AND [total real] > 0);
    GO


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Propuesto como respuesta Jorge TurradoMVP viernes, 15 de septiembre de 2017 5:22
    jueves, 14 de septiembre de 2017 22:50