![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#2
|
|||
|
|||
|
Ya lo hizo antes y continua NULL en el resultado. Creo yo que el problema sea el Case.
|
|
#3
|
||||
|
||||
|
¿ Cuando id_tecnico no sea nulo que resultado esperas en tu consulta ?. Puesto que tu case no lo contempla, por lo tanto no va a dar ningún resultado.
En tu consulta solo devuelves un resultado cuando id_tecnico es nulo. Si esto no es lo que realmente quieres, entonces tienes que añadir un else a la construcción case. NOTA: Por cierto, ¿ esta consulta funciona de verdad ?. Esto de poner un campo en el resultado y una función de agregado sobre ese mismo campo, no lo veo nada claro. Una subconsulta para obtener la función de agregado (max) sería mucho mejor, en mi opinión. ¿ Esto es lo que quieres ?
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#4
|
|||
|
|||
|
Yo antes tenia hecho asi e vuelve NULL, quando id_tecnico es NULL, como ahora:
El resultado es NULL, pues el id_tecnico es NULL y deberia ser 1. |
|
#5
|
||||
|
||||
|
No me sorprende que esta última consulta no te funcione, personalmente no le encuentro ningún sentido, por más que la miro no llego a entender lo que pretendes conseguir con ella.
¿ Cuando en un registro no hay ID_TECNICO, quieres que devuelva un 1 o quieres que devuelva el mayor ID_TECNICO del resto de registros, incrementado en 1 ?. Y cuando un registro si tiene valor en ID_TECNICO, ¿ que quieres que devuelva esa consulta ?, ¿ ese mismo ID_TECNICO, el mayor ID_TECNICO en la tabla, ese último valor incrementado en uno, ... ?. ¿ Porqué no nos pones algunos ejemplo de los valores que puede haber en STAFF_TECNICO y de lo que estás buscando conseguir en cada caso ?. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 05-01-2011 a las 15:17:05. |
|
#6
|
||||
|
||||
|
Por cierto, si staff_tecnico no tiene ningún registro, no se va a volver ningún resultado, lo cual tu aplicación lo puede entender como un Nulo. Así que sería bueno que nos indicaras que valor pretendes devolver en ese caso (tabla vacía).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#7
|
|||
|
|||
|
Mi idioma no ayudame a ser mas objetivo. Mira, tengo una aplicacion para varios clientes. Quando un cliente es nuevo, la tabla tine este campo como NULL. Pero hay clientes que ya tiene alguna cosa ya inserida. Tengo una funcion en delphi, que tiene por objetivo tomar este valor inicial y grabar en el banco de datos. Quando la tabla no tiene nada, entonces hago el coalesce y grabo uno(1) en la clave. Si tiene algo ya, hogo el max(campo) + 1. Seria mas o menos asi:
Este ejemplo ariba no funciona, por el CASE. Este es mi problema. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| select de media no funciona con ado | juangabriel1786 | SQL | 3 | 09-03-2009 17:11:51 |
| sintaxis de select case O___o | NSL94 | Varios | 5 | 22-06-2007 11:24:09 |
| Problema conuna consulta select...not in (select ...) | VRO | Firebird e Interbase | 2 | 11-08-2005 08:56:35 |
| 5 select de 5 tablas diferentes en un select solo | sakuragi | SQL | 6 | 15-06-2005 18:57:06 |
| Ejemplo Select Case | osmar | Firebird e Interbase | 4 | 21-02-2005 18:18:57 |
|