FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Utilización del iif
Hola a tdos, muchos saludos. Bueno no se si este debe ser el titulo para este hilo, pero el caso es que el problema creo que está en está función sql, eso creo yo. El problema es el siguiente. Estoy tratando de construir una vista en sql server 2000 de la siguiente forma:
Cuando ejcuto la vista me genera el siguiente error: Error in list of function arguments: '>' not recognized. Unable to parse query text. Ya no se que hacer he leído acerca de esta función en la ayuda y no se donde pueda estar el problema. Agradecería cualquier ayuda. Muchas gracias. |
#2
|
||||
|
||||
Si "Saldo" es otro campo, esta raro, pero si lo que quieres es el mismo saldo que estas calculando, la función debería ser así:
__________________
|
#3
|
||||
|
||||
intenta con CASE, te da mas flexibilidad
__________________
self.free; |
#4
|
|||
|
|||
ContraVeneno muchas gracias por tu ayuda al igual que a droguerman. Esto fue lo que hice fue lo siguiente:
A lo mejor está un poco desorganizado y hay una mejor forma de usar el case. En caso de que así sea por favor les agradecería su colaboración. Muchas Gracias. |
#5
|
||||
|
||||
Bueno, no tienes que declarar el case en cada línea, solo hacer falta hacerlo una vez, ademas, como estas comparando un rango, lo mejor sería utilizar un "between":
a menos que quieras tenerlos en 3 campos separados en cuyo caso si estaría bien hacer 3 cases diferentes. De cualquier manera creo que te serviría hacerlo en una sola columna y utilizar una agrupación u ordenarlos por ese campo. En fin, la decisión es tuya.
__________________
|
#6
|
|||
|
|||
Saludos ContraVeneno muchas gracias por tu aclaración, pero tengo el siguiente problema. Tengo una tabla denominada facturas que es a partir de la cual que construyo esta consulta. Esta tabla tiene entre otros los campos idfactura, fecharecepcion, importe, entre otros. Que persigo con la consulta que esta arriba: que me devuelva el importe de las facturas que están comprendidos entre los rangos de edades que me devuelve la consulta. Para ser mas específico deseo que me de para entre 30 y 60 días el importe de las facturas que tienen esa edad. Para luego utilizar esta consulta pra construir un Reporte en delphi 7. Esto no se como hacerlo, agradecería cualquier ayuda. Muchas gracias. Disculpa la molestia.
|
#7
|
||||
|
||||
Pues yo lo haría a partir de esa misma consulta agrupada por el campo DiffDias (pense que eran días, pero ya veo que son edades). En la banda de agrupación le especifico que agrupe por este campo (el del case) y listo. Me pondrá primero todos los de menores a 30, luego los que estan entre 30 y 60 y así sucesivamente.
Para el total, pues en el GroupFooter pongo un TQRExpr con la suma del campo importe. ¿Dudas? Consulta la ayuda de Delphi, o puedes preguntar en este mismo hilo y trataré de darte más pistas.
__________________
|
#8
|
|||
|
|||
Saludos, ContraVeneno muchas gracias a ti y a droguerman por su a yuda, ya resolví el problema de la siguiente forma:
Hola sinalocarlos, muchas gracias por tu ayuda. Te cuento que ya resolví el probelma y logré lo que quería de la siguiente forma: Es decir ahora obtengo el importe por cada rango de edad que establecí, que era lo que me faltaba, el problema estaba cuando yo ponía then DATEDIFF(day,FechaRecepcion, GETDATE()) en vez de poner el campo Importe. Gracias. Creo que la función iif no se puede utilizar en una vista pues la misma corresponde a Analysis Services, por eso creo que me salía el error en el argumento '>'. Les reitero las gracias. |
#9
|
|||
|
|||
Hola ContraVeneno, voy a aprovechar tu sugerencia, sobre la ayuda que me prometiste en uno de tus correos sobre el tema. El siguiente procedimiento almacenado me devuelve los resulyados que yo deseo:
Este procedimiento me devuelve los resultados que yo espero. Ahora voy al delphi y creo un nuevo reporte, agrego los componentes de la paleta ADO: adoconnection, adostoredprocedure y un datasource. Agrego un qrexpression donde pongo la siguiente expresión: sum(adospantiguedad.Entre3060dias), y así lo hago con cada uno delos campos que me genera el ado stored procedure. Cuando le doy un preview no me pone nada, solo 0 en cada uno de los campos. A que se deberá esto?. Gracias. Última edición por efelix fecha: 22-01-2007 a las 17:39:59. |
#10
|
||||
|
||||
Cita:
Cita:
__________________
|
#11
|
|||
|
|||
Disculpa ContraVeneno cuando dije esto fua haciendo alusión al hecho de que cundo me registré en el foro, elegí la opción de que las respuestas a los hilos que publicara me llegaran vía correo electrónico. Si creo que todo está bien, te digo como están establecidas las propiedades. La propiedad connection del ado estored prcedure apunta al ado connection el cual tiene su propiedad connected establecida a true, el data source tiene su propiedad dataset establecida el ado stored procedure, el ado stored procedure tiene la propiedad active establecida a true. Creo que estás son las mas significativas en cuanto a lo que me dices. No se porque no funciona. Gracias.
|
#12
|
||||
|
||||
Me refería a los componentes del TQReport. Ya que si la consulta en tu programa te muestra todos los resultados como deseas, pero el reporte no lo hace, entonces el problema esta en el reporte y la manera en que este está conectado a tu dataset. Mi pregunta entonces, hiba encaminada a saber si los componentes de tu reporte (el reporte, las bandas y las expresiones) estan debidamente enlazados a tu dataset.
__________________
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
utilizacion trigger | dmagui | Firebird e Interbase | 16 | 10-06-2005 01:38:55 |
Utilización de InoSetup | Tonio | Varios | 7 | 21-11-2004 09:48:39 |
Utilización webs | jymy788 | Varios | 4 | 15-11-2004 17:55:16 |
Utilizacion RichEdit | FNADALO | Impresión | 1 | 27-09-2004 15:30:20 |
Utilización de DLL's | Enan0 | Varios | 2 | 19-05-2004 20:43:13 |
|