Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Sumar filas en sql 2008

Estas en el tema de Sumar filas en sql 2008 en el foro de SQL Server en Foros del Web. Buenos días , estoy dándole vueltas a ver como consigo hacer que en un campo "grantotal" se auto-sumen todos lo valores de los productos de ...
  #1 (permalink)  
Antiguo 30/01/2012, 02:45
 
Fecha de Ingreso: diciembre-2011
Ubicación: Baleares/España
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Sumar filas en sql 2008

Buenos días , estoy dándole vueltas a ver como consigo hacer que en un campo "grantotal" se auto-sumen todos lo valores de los productos de las demás columnas.
Por ejemplo :

columnas:
fecha , vacuno , porcino , ovino , aves ,grantotal
02/01/2012 242 325 521 325 ??????? auto-sumar vacuno, porcino,ovino,aves y devolver resultado en grantotal .

¿Como lo puedo hacer ? Por favor tengan en cuenta que soy novato y voy aprendiendo como puedo.Gracias de antemano.
  #2 (permalink)  
Antiguo 30/01/2012, 02:56
 
Fecha de Ingreso: diciembre-2011
Ubicación: Baleares/España
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Sumar filas en sql 2008

esta es la tabla que tengo :

CREATE TABLE dbo.Compras
(
Fecha DATE NOT NULL DEFAULT '1900-01-01',
Vacuno INT NOT NULL DEFAULT 0,
Porcino INT NOT NULL DEFAULT 0,
Ovino INT NOT NULL DEFAULT 0,
Aves INT NOT NULL DEFAULT 0,
Grantotal INT NOT NULL DEFAULT 0---------- "AUTOSUMA VACUNO PORCINO OVINO AVES"
)

INSERT INTO dbo.Compras ( Fecha )
VALUES ( GetDate() )

SELECT *
FROM dbo.Compras (NOLOCK)
  #3 (permalink)  
Antiguo 30/01/2012, 12:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar filas en sql 2008

Declara tu campo grantotal como CALCULADO y haces la SUM() de tus demas campos
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 30/01/2012, 13:15
Avatar de sebas_20_jv  
Fecha de Ingreso: agosto-2009
Ubicación: Medellin, Colombia
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Sumar filas en sql 2008

Es correcto como iislas dice..
Pero como dices que apenas estas empezando aqui va....


Select sum(Vacuno) + sum(Porcino) + sum(Ovino) + sum(Aves) as 'GranTotal'
FROM dbo.Compras

Saludos.
  #5 (permalink)  
Antiguo 30/01/2012, 13:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar filas en sql 2008

Ese select, debe estar en la declaracion del campo, al momento de crear la tabla.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 31/01/2012, 02:14
 
Fecha de Ingreso: diciembre-2011
Ubicación: Baleares/España
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Sumar filas en sql 2008

Buenas! no se si lo escribo bien , pero no me da el resultado , no suma nada mira lo escribo así:

CREATE TABLE dbo.Compras
(
Fecha DATE NOT NULL DEFAULT '1900-01-01',
Vacuno INT NOT NULL DEFAULT 0,
Porcino INT NOT NULL DEFAULT 0,
Ovino INT NOT NULL DEFAULT 0,
Aves INT NOT NULL DEFAULT 0,
Grantotal INT NOT NULL DEFAULT 0
)

INSERT INTO dbo.Compras ( Fecha )
VALUES ( GetDate() )

SELECT *
FROM dbo.Compras (NOLOCK)

Select sum(Vacuno) + sum(Porcino) + sum(Ovino) + sum(Aves) as 'GranTotal'
FROM dbo.Compras


Esta bien?
Gracias amigos.
  #7 (permalink)  
Antiguo 31/01/2012, 11:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar filas en sql 2008

Veamos en el siguiente ejemplo:

CREATE TABLE [tbl_registro_de_empleados] (

[id_empleado] [char] (10) COLLATE Modern_Spanish_CI_AS NOT NULL ,

[nombres] [char] (60) COLLATE Modern_Spanish_CI_AS NULL ,

[cuota_facturacion] [numeric](10, 2) ,

[horas_trabajadas] [numeric](10, 2) ,

[valor_a_pagar] as cuota_facturacion*horas_trabajadas ,

VALOR_A_PAGAR es el resultado de multiplicar CUOTA_FACTURACION X HORAS_TRABAJADAS

¿se comprende?
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 31/01/2012, 11:29
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Sumar filas en sql 2008

Revisa si te sirve esto:

Código SQL:
Ver original
  1. CREATE TABLE dbo.Compras
  2. (
  3. Fecha DATE NOT NULL DEFAULT '1900-01-01',
  4. Vacuno INT NOT NULL DEFAULT 0,
  5. Porcino INT NOT NULL DEFAULT 0,
  6. Ovino INT NOT NULL DEFAULT 0,
  7. Aves INT NOT NULL DEFAULT 0,
  8. Grantotal INT NOT NULL DEFAULT 0
  9. )
  10.  
  11. INSERT INTO dbo.Compras ( Fecha )
  12. VALUES ( GetDate() )
  13.  
  14. SELECT *
  15. FROM dbo.Compras (NOLOCK)
  16.  
  17. SELECT SUM(Vacuno + Porcino + Ovino + Aves) AS GranTotal
  18. FROM dbo.Compras

  #9 (permalink)  
Antiguo 31/01/2012, 12:30
 
Fecha de Ingreso: diciembre-2011
Ubicación: Baleares/España
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Sumar filas en sql 2008

Buenas drako_darpan pues.. no me sirve .. era el que ya había probado y no suma nada , pensaba que como dijo iislas alomejor había que declarar un campo calculado, he leído y probado pero se me atraganta .
iislas perdona por que quizás soy un poco zoquete pero cuando he visto el código lo único que soy capaz de deducir es esto . Tu dices..
[valor_a_pagar] as cuota_facturacion*horas_trabajadas ,
y yo lo aplico escribiendo..
[Grantotal] as Vacuno+Porcino+Ovino+Aves
tampoco me calcula nada ... relleno campos y no suma
perdón por las molestias y gracias.
  #10 (permalink)  
Antiguo 31/01/2012, 13:35
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Sumar filas en sql 2008

Hola que tal, cuando dices que no suma nada es por que el resultado te da 0 o por que te marca algun error.

Código SQL:
Ver original
  1. CREATE TABLE dbo.Compras
  2. (
  3. Fecha DATE NOT NULL DEFAULT '1900-01-01',
  4. Vacuno INT NOT NULL DEFAULT 0,
  5. Porcino INT NOT NULL DEFAULT 0,
  6. Ovino INT NOT NULL DEFAULT 0,
  7. Aves INT NOT NULL DEFAULT 0,
  8. Grantotal INT NOT NULL DEFAULT 0
  9. )
  10.  
  11. INSERT INTO dbo.Compras ( Fecha, vacuno, Porcino, ovino, aves )
  12. VALUES ( GetDate(), 242, 325, 521, 325 )
  13.  
  14. SELECT *
  15. FROM dbo.Compras (NOLOCK)
  16.  
  17. SELECT SUM(Vacuno + Porcino + Ovino + Aves) AS GranTotal
  18. FROM dbo.Compras

Si quieres que la suma se haga al momento de insertar informacion en los campos, creo que ocupas hacer un trigger.

Revisa estas paginas, haber si te sirven:

http://msdn.microsoft.com/en-us/library/ms189799.aspx

http://msmvps.com/blogs/lalfaro/arch...nt-studio.aspx

http://alexjimenez.wordpress.com/200...en-sql-server/

http://rahsuarez.wordpress.com/2010/...l-server-2008/



No tengo mucho conocimiento del uso de los triggers, asi que te la deberia la explicacion, pero lo poco que se es que se ejecuta cuando se hace algo en la tabla.
  #11 (permalink)  
Antiguo 31/01/2012, 14:39
 
Fecha de Ingreso: diciembre-2011
Ubicación: Baleares/España
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Sumar filas en sql 2008

Claro drako_darpan esta muy bien el código que me has pasado , me hace la suma a parte, lo bueno sería que lo hiciera justo a insertar la in formación y en el campo grantotal por que con este código hace la suma en otro grantotal , el de la tabla continua con valor 0.
Entiendo que hace falta un tigger por lo que me dices . Voy a estudiarlo a ver si soy capaz ... te agradezco mucho tu ayuda ojala yo pudiera hacerlo también... gracias!!
  #12 (permalink)  
Antiguo 01/02/2012, 13:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar filas en sql 2008

Amigo, acaso se le ha ocurrido revisar lo que le comente de CAMPOS CALCULADOS?
__________________
MCTS Isaias Islas

Etiquetas: fecha, filas, sql, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:11.