none
Cantidad por Mes RRS feed

  • Pregunta

  • Buen día tengan todos!!

     

    En esta ocasión tengo lo siguiente:

    Pasa de que me gustaría hacer una consulta la cual sería usada para la realización de un reporte en Crystal, donde me aparezcan ciertos campos de un registro(p.e. Producto), clasificados segun el mes de la venta, y llevar un control de la venta durante ese mes:

    Por ejemplo:

     

    Producto:      Enero:       Feb:     Mar:    Abril:   May:  etc.           Suma:

    Teclado               12          5          10          4         2      ....                 33

    Monitor                 4           2             1          0         5                          12

     

    Considero que es bastante sencilla, solo que no he dado con la solución..

    No sé su crystal cuente con alguna manera de lograr que imprimar el reporte..de esa manera..Espero haya sido explicita..

    Y muchas gracias de Antemano..

    Besos!!...

     

    miércoles, 23 de mayo de 2007 22:34

Respuestas

  • Hola!!!

    Hoy vuelvo de nuevo, solo que ahora si vuelvo con la Solución al problema Big Smile..

    Que después de varios días me había traído como lokita.. Pero gracias a mi buen y paciente amigo Robes que me ha ayudado y me ha guiado hemos encontrado algo..

    Que si bien SQLServer 2005 lo trae facilito, pues yo aún me he quedado con el uso de SQLServer 2000, (por lo que espero pronto cambiarme, pa no quedarme atrás...) y la solución no es tan sencilla, pero si hay algo que sea funcional... Por lo que aquí les dejo el link donde lo he encontrado:

     

    http://www.elguille.info/NET/ADONET/firmas_salva_Pivot_Unpivot.htm

     

    Shenchillito!!!!, pero no jué chico fácil!!! Bueno por lo menos nolo fué hasta que me dijeron más o menos que podía hacer!!!!

     

    Que tengan un excelente día!!!

    Y nos vemos muy pronto por acá...

    Besos!!

     

    P.D. Isaías!!!! Me quedé esperando respuesta al mail que te envié.. de cualquier forma Muchas Gracias por tu interés, y no creas que te vas a escapar de mi tan fácilmente!!! eh!!!

     jajajajajajajajajajajaja Besitos!!!!

    lunes, 28 de mayo de 2007 17:21
  • Esto fue lo que mande a tu correo:

     

    select dt.v_descripcion,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 1 THEN f_hectareas END) AS Enero,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 2 THEN f_hectareas END) AS Febrero,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 3 THEN f_hectareas END) AS Marzo,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 4 THEN f_hectareas END) AS Abril,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 5 THEN f_hectareas END) AS Mayo,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 6 THEN f_hectareas END) AS Junio,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 7 THEN f_hectareas END) AS Julio,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 8 THEN f_hectareas END) AS Agosto,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 9 THEN f_hectareas END) AS Septiembre,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 10 THEN f_hectareas END) AS Octubre,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 11 THEN f_hectareas END) AS Noviembre,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 12 THEN f_hectareas END) AS Diciembre,
    sum(f_hectareas) as Total
    from Nota n
    join  Detnota dt
    on n.i_nro_folio = dt.i_nro_folio
    group by dt.v_descripcion

    lunes, 28 de mayo de 2007 18:11

Todas las respuestas

  • Perdona, ¿Esto lo quieres resolver en CRYSTAL o quieres que lo resuelva la base de datos?

     

    Si fuera la base, lee este link.

     

    http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b175574&Product=sql

    miércoles, 23 de mayo de 2007 23:30
  • Hola!!

    Muchas gracias por responder!!!

    Considero que la forma correcta de hacerlo es desde la base de datos..y pues me gustaria que desde ahi..

     

    Solo que me he encontrado con algo..

    La fecha de la captura es en este formato: dd/MM/yyyy en un campo de tipo datetime llamado: d_fecha ...

    Osea que no tengo separados los tiempos...

    Entonces????? Embarrassed...

    Que hago yo???...es posible??? Dime ke si!! si???

    Saludos!! Que tengas un excelente día!!!

    Y mil gracias!!!

     

     

    miércoles, 23 de mayo de 2007 23:57
  • ¿Ya leiste la liga?

     

    Los "formatos" de las fechas en SQL SERVER son en ANSI (YYYY-MM-DD hh: mm: ss, nnn).

    jueves, 24 de mayo de 2007 0:33
  • Hola Isaías.. Muy buen día!!!

    Si tienes razón con lo del formato de la fecha, fué un error mío al mostrarlo de esa manera.. pues así es como la maneja.. lo que pasa que en éste caso como uso el convert que talvés no tenga nada ke ver en esto, pero pues me fuí con la finta y asi la puse dd/MM/yyyy, pero claro la forma correcta es como tú la pones por supuesto y si... asi es..

     

    A lo que yo me referia es ke como puedo "filtrar" o decirle a que mes pertenece si tengo la fecha asi.. Ando un tanto enredada, pues si, ya había leído la liga que me dijiste y la he leido nuevamente pero kedo igual..

    no sé cómo poner en la consulta lo del mes...Tongue Tied

    Por que ya ves que ahi maneja un campo para el año..y en mi caso tengo la fecha completa..

    No sé si yo estoy confundida y me estoy ahogando en un vaso de agua.. pero si sigo sin poder darle solución...

     

    De verdad muchas gracias!! Por responder de nuevo..

    Que tengas un excelente día!!

    Besos!!! Wink. . .

    jueves, 24 de mayo de 2007 18:05
  • Gracias por tus buenos deseos, igualmente.

     

    ¿Como sacar el mes de un campo fecha?

     

    DATEPART(mm, GETDATE())

     

    Si requieres algo mas, solo dilo.

     

    Saludos

    jueves, 24 de mayo de 2007 19:45
  • Hola..

    Sigo igual!!!!!!!

    Por ahi me han propuesto el uso de funciones, y me dicen ke es muy sencillo y fácil lo que quiero hacer.. pero nomas no doy. ...ayer estuve buscando porque me hubiera gustado volver con la solución, pero nada..

    Pues es eso:

    Sacar el total del producto por mes... y hacer una suma de totales...

    Crying. .. .

    Muchas gracias.... de nuevo.. y mil perdones por ser tan asi como soy..

    Gracias...

    Que tengan un excelente día..

     

    viernes, 25 de mayo de 2007 17:52
  • Chica

     

    ¿Leiste el LINK que te mande?, ¿Ya tienes algun codigo avanzado?

     

    Mandame la descripcion de tu tabla para poder ayudarte.

    viernes, 25 de mayo de 2007 18:09
  • Si ya lo lei..

    Te puedo enviar un mail??? Embarrassed

    Saludos..

    viernes, 25 de mayo de 2007 18:38
  • Con gusto.
    viernes, 25 de mayo de 2007 19:29
  • Hola!!!

    Hoy vuelvo de nuevo, solo que ahora si vuelvo con la Solución al problema Big Smile..

    Que después de varios días me había traído como lokita.. Pero gracias a mi buen y paciente amigo Robes que me ha ayudado y me ha guiado hemos encontrado algo..

    Que si bien SQLServer 2005 lo trae facilito, pues yo aún me he quedado con el uso de SQLServer 2000, (por lo que espero pronto cambiarme, pa no quedarme atrás...) y la solución no es tan sencilla, pero si hay algo que sea funcional... Por lo que aquí les dejo el link donde lo he encontrado:

     

    http://www.elguille.info/NET/ADONET/firmas_salva_Pivot_Unpivot.htm

     

    Shenchillito!!!!, pero no jué chico fácil!!! Bueno por lo menos nolo fué hasta que me dijeron más o menos que podía hacer!!!!

     

    Que tengan un excelente día!!!

    Y nos vemos muy pronto por acá...

    Besos!!

     

    P.D. Isaías!!!! Me quedé esperando respuesta al mail que te envié.. de cualquier forma Muchas Gracias por tu interés, y no creas que te vas a escapar de mi tan fácilmente!!! eh!!!

     jajajajajajajajajajajaja Besitos!!!!

    lunes, 28 de mayo de 2007 17:21
  • Esto fue lo que mande a tu correo:

     

    select dt.v_descripcion,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 1 THEN f_hectareas END) AS Enero,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 2 THEN f_hectareas END) AS Febrero,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 3 THEN f_hectareas END) AS Marzo,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 4 THEN f_hectareas END) AS Abril,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 5 THEN f_hectareas END) AS Mayo,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 6 THEN f_hectareas END) AS Junio,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 7 THEN f_hectareas END) AS Julio,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 8 THEN f_hectareas END) AS Agosto,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 9 THEN f_hectareas END) AS Septiembre,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 10 THEN f_hectareas END) AS Octubre,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 11 THEN f_hectareas END) AS Noviembre,
    sum(CASE WHEN DATEPART(mm, n.d_fecha) = 12 THEN f_hectareas END) AS Diciembre,
    sum(f_hectareas) as Total
    from Nota n
    join  Detnota dt
    on n.i_nro_folio = dt.i_nro_folio
    group by dt.v_descripcion

    lunes, 28 de mayo de 2007 18:11
  • Oks..

    Disculpa si tienes razón,  lo que pasas que revise hoy temprano y no estaba, entonces seguí buscando según me dijo mi compañero Robes y me encontré con ese link donde me da solución, hasta orita que me lo dices he revisado de nuevo y si ahi sta...

    Muchas gracias de nuevo!!!

    Que tengas un excelente día!!!

    lunes, 28 de mayo de 2007 18:40
  • Aunque si la version que tienes es 2005, entonces utiliza la instruccion PIVOT.

     

    USE AdventureWorks;
    GO
    SELECT VendorID, [164] AS Emp1, [198] AS Emp2, [223] AS Emp3, [231] AS Emp4, [233] AS Emp5
    FROM 
    (SELECT PurchaseOrderID, EmployeeID, VendorID
    FROM Purchasing.PurchaseOrderHeader) p
    PIVOT
    (
    COUNT (PurchaseOrderID)
    FOR EmployeeID IN
    ( [164], [198], [223], [231], [233] )
    ) AS pvt
    ORDER BY VendorID
    VendorID    Emp1        Emp2        Emp3        Emp4        Emp5
    1           4           3           5           4           4
    2           4           1           5           5           5
    3           4           3           5           4           4
    4           4           2           5           5           4
    5           5           1           5           5           5
     
     
     
    lunes, 28 de mayo de 2007 18:46
  • Oks...Muchas Gracias!!!!. . ..

    Besos!!!

    lunes, 28 de mayo de 2007 21:06