CONSULTA Y CALCULO DE DATOS DESDE BD.

42 views
Skip to first unread message

caa

unread,
Apr 21, 2014, 12:31:39 PM4/21/14
to web2py-...@googlegroups.com
Saludos compañeros del grupo, de la siguiente tabla, necesito calcular los contenidos del campo volumen, es decir: Sumar todos los números almacenados en campo volumen cuando el tipo de activo (tipo_act) sea LIBRO.
EXPLICO en el campo volumen se coloca la cantidad de volúmenes que contiene cada libro o material activo en la biblioteca, por ejemplo del libro matematica 4, tiene 3 volúmenes.

db.define_table('activo',
                Field('autor',requires=IS_NOT_EMPTY()),
                Field('titulo',requires=IS_NOT_EMPTY()),
                Field('cota',length=20,requires=IS_NOT_EMPTY()),
                Field('volumen',length=10),
                Field('tipo_act',default='LIBRO',requires=IS_IN_SET(['LIBRO','MODULO','TRABAJOS DE GRADO Y ASCENSO','DOCUMENTOS','PUBLICACIONES PERIODICAS','PLANES DE CURSO','PLANES DE EVALUACION','AUDIOVISUALES','MAPAS','BIBLIOTECA RENTAL'])),
                Field('disponible',default='SI',requires=IS_IN_SET(['SI', 'NO'])),
                Field('ingreso','date',default=request.now,writable=True,readable=True))


al hacer la consulta siguiente me muestra volumen y cantidades pero no las se sumar ya que son un dato tipo row
veli1 = db(db.activo.volumen)(db.activo.tipo_act=='LIBRO').select(db.activo.volumen)

Gracias

Roberto Perdomo

unread,
Apr 21, 2014, 12:39:42 PM4/21/14
to web2py-...@googlegroups.com

Para ello puedes utilizar un computed field:

http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Computed-fields

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuari...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

samuel bonill

unread,
Apr 21, 2014, 1:42:10 PM4/21/14
to web2py-...@googlegroups.com
intenta :

veli1 = db(db.activo.volumen)(db.activo.tipo_act=='LIBRO').select(db.activo.volumen.sum())
Reply all
Reply to author
Forward
0 new messages