SQL - USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

 
Vista:
sin imagen de perfil

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Andres (4 intervenciones) el 17/07/2017 20:25:50
Hola! buen día! Verán tengo el siguiente problema:
Tengo una consulta SELECT el cual devuelve 6 campos, hasta ahí todo transcurre bien.

1

Sin embargo, necesito que a través de una condición sume los valores de la columna "LARGO_YD" en una variable y de tal manera que sume los valores hasta que se cumpla la condición. He tratado de realizarlo con el siguiente código pero no logro poder hacerlo funcionar
2

Cabe destacar que lo que estoy realizando es para un procedimiento almacenado y la variable "@consumoTotalTela" es un dato que es proporcionado por el usuario.

Ojalá puedan ayudarme y agradezco de antemano sus respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Isaias (1919 intervenciones) el 17/07/2017 22:20:40
¿En que motor de base de datos estas trabajando?

El objetivo, segun entiendo, es hacer un SUM del campo LARGO_YD, hasta en tanto no rebase el monto de la variable @consumoTotalTela, ¿es asi?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Andres (4 intervenciones) el 17/07/2017 22:42:56
El motor es en SQL Server 2012

Exacto, ése es el objetivo, sólo que la suma la va a obtener de diferentes registros, es decir, que no siempre va a tomar los mismos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Isaias (1919 intervenciones) el 18/07/2017 00:10:31
Dejame ver si puedo hacer algo por ti, aunque se me hace muy rara tu consulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Andres (4 intervenciones) el 18/07/2017 00:30:06
Muchas gracias por su aporte.
El detalle aquí es que necesito dichos filtros en el WHERE para seleccionar solo cierta información. Al usar la condición que me dice me marca un error de que no es posible
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Isaias (1919 intervenciones) el 18/07/2017 00:55:07
Si, tambien lo probe y me mando el mismo mensaje de error, la teoria dice que esto deberia funcionar

select sum(Bonus)
from sales.SalesPerson
having sum(bonus) <= 500.00
ORDER BY NEWID()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 41
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por kip (10 intervenciones) el 18/07/2017 01:52:48
Hola, debes usar un CURSOR en este caso, no se como estes definiendo bien tu SP pero aqui te dejo algo a ver si lo ajustas y lo pruebas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
DECLARE @largo_yd INT;
DECLARE @suma_yardas DECIMAL(18,2);
SET @suma_yardas = 0.0;
 
DECLARE the_cursor CURSOR FOR
    SELECT TOP 10
        LARGO_YD
    FROM
        TBL_INV_TELA
    WHERE
        ACTIVO = 1
        AND EN_CORTE = 0
        AND ID_TIPO_TELA = 160
    GROUP BY
        NO_ROLLO,
        ACTIVO,
        LARGO_YD,
        ID_ROLLO,
        PROGRAMADO
    ORDER BY
        FECHA ASC;
 
OPEN the_cursor;
FETCH NEXT FROM the_cursor INTO @largo_yd;
 
WHILE (@@FETCH_STATUS = 0) AND (@consumo_telas <= @suma_yardas)
BEGIN
    SET @suma_yardas = @suma_yardas + @largo_yd;
    FETCH NEXT FROM the_cursor INTO @largo_yd;
END;
 
CLOSE the_cursor;
DEALLOCATE the_cursor;

Nos cuentas como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Isaias (1919 intervenciones) el 18/07/2017 16:50:30
En lugar de ORDER BY FECHA, como quieres que sea aleatorio cambialo por ORDER BY NEWID()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

USAR SENTENCIA IF PARA SUMAR FILAS DE UNA MISMA COLUMNA EN SQL

Publicado por Andres (4 intervenciones) el 19/07/2017 15:44:54
HOLA! Muchas gracias por tu respuesta.

El detalle esta en que necesito que la selección sea sobre la fecha y ya lo modifiqué a como tu lo planteabas
11

Sin embargo en donde pongo la la raya roja, no entiendo que es lo que hace esa línea de código. Creo que es necesario hacer un ajuste.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar