Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 19-ago-2005, 11:44   #1 (permalink)
Baby78 está en el buen camino
 
Avatar de Baby78
 
Fecha de Ingreso: julio-2005
Mensajes: 142
Enviar un mensaje por Yahoo  a Baby78
Consulta Extraña...?

Tengo otro problema y es el siguiente:

Tengo esto en mi tabla:
Cita:
LName FName UdfNum UdfText
---------------------------------------------------------------
Esquivel Rocha Juan Manuel 1 57-92-76-3456-8
Esquivel Rocha Juan Manuel 2 307406
Esquivel Rocha Juan Manuel 3 7406
Esquivel Rocha Juan Manuel 6 Prueba
Esquivel Rocha Juan Manuel 7 06-Jul-1998
Esquivel Rocha Juan Manuel 8 EURJ-760625-666
Esquivel Rocha Juan Manuel 9 506
Esquivel Rocha Juan Manuel 11 - -
tengo la siguiente consulta

Código:
"SELECT upper(NAMES.FName)+' '+ upper(NAMES.LName)as FULLNAME, UDF.UdfNum , UDF.UdfText FROM NAMES INNER JOIN UDF ON NAMES.ID = UDF.NameID  where UDF.UdfText = '307406'
y me muestra lo siguiente:
Cita:
LName FName UdfNum UdfText
----------------------------------------
Esquivel Rocha Juan Manuel 2 307406
pero yo necesito que me muestre asi
Cita:
Esquivel Rocha Juan Manuel
57-92-76-3456-8
7406
Prueba
06-Jul-1998
EURJ-760625-666
506
Utilizo UdfText='307406' porque esa es mi clave para accesar, ya que lo pido por medio de un formulario en asp, pero necesito que cuando UdfNum sea igual a 1,3,6,7,8,9 me muestre esa informacion pero no he podido hacerlo

Si me pudieran ayudar

De antemano gracias de .

Última edición por Baby78; 22-ago-2005 a las 14:31.
Baby78 está desconectado   Responder Citando
Antiguo 19-ago-2005, 12:11   #2 (permalink)
Colaborador
Linterns tiene algunos puntos positivos de karma
 
Avatar de Linterns
 
Fecha de Ingreso: noviembre-2002
Mensajes: 2.803
a ver, intenta con esto y dime si es lo que necesitas

Código PHP:
(SELECT upper(NAMES.FName)+' 'upper(NAMES.LName)as FULLNAME,
FROM NAMES INNER JOIN UDF ON NAMES.ID UDF.NameID  
where UDF
.UdfText '110532')
Union
(SELECT UDF.UdfText 
FROM NAMES INNER JOIN UDF ON NAMES
.ID UDF.NameID  
where UDF
.UdfText '110532'
AND UDF.UdfNum in (1,3,6,7,8,9) ) 
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
Linterns está desconectado   Responder Citando
Antiguo 19-ago-2005, 13:02   #3 (permalink)
Baby78 está en el buen camino
 
Avatar de Baby78
 
Fecha de Ingreso: julio-2005
Mensajes: 142
Enviar un mensaje por Yahoo  a Baby78
No funciona solo me muestra el FullName
Baby78 está desconectado   Responder Citando
Antiguo 19-ago-2005, 14:22   #4 (permalink)
Colaborador
Linterns tiene algunos puntos positivos de karma
 
Avatar de Linterns
 
Fecha de Ingreso: noviembre-2002
Mensajes: 2.803
quitale la parte sobrante del segundo select

Cita:
(SELECT upper(NAMES.FName)+' '+ upper(NAMES.LName)as FULLNAME,
FROM NAMES INNER JOIN UDF ON NAMES.ID = UDF.NameID
where UDF.UdfText = '110532')
Union
(SELECT UDF.UdfText
FROM NAMES INNER JOIN UDF ON NAMES.ID = UDF.NameID
where UDF.UdfNum in (1,3,6,7,8,9) )
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
Linterns está desconectado   Responder Citando
Antiguo 19-ago-2005, 16:19   #5 (permalink)
Baby78 está en el buen camino
 
Avatar de Baby78
 
Fecha de Ingreso: julio-2005
Mensajes: 142
Enviar un mensaje por Yahoo  a Baby78
Tampoco, ya he probado varias cosas y no , el que tu pones me muestre pero todos los registros de la tabla y solo quiero que me muestre cuando UdfText='307406', seguire intentando

Última edición por Baby78; 22-ago-2005 a las 14:32.
Baby78 está desconectado   Responder Citando
Antiguo 23-ago-2005, 08:47   #6 (permalink)
Baby78 está en el buen camino
 
Avatar de Baby78
 
Fecha de Ingreso: julio-2005
Mensajes: 142
Enviar un mensaje por Yahoo  a Baby78
Disculpen que insista pero es que no he podido dar con esto, y ya me estoy desesperando, por favor que alguien me ayude. Se los voy a agradecer mucho
Baby78 está desconectado   Responder Citando
Antiguo 24-ago-2005, 02:23   #7 (permalink)
Vice está en el buen camino
 
Avatar de Vice
 
Fecha de Ingreso: agosto-2003
Mensajes: 613
¿Te das cuenta de que lo que pides es incongruente?
¿como te va a mostrar los datos que tienen udftext distinto de 307406 si precisamente esa es la restricción que muestras?.
De todas las filas que has puesto al principio sólo hay una que cumpla la condición. Tiene que haber otro campo para restrigir y obtener esos registros.
Tal como has puesto y dices las cosas la consulta sería:
Código:
SELECT upper(NAMES.FName)+' '+ upper(NAMES.LName)as FULLNAME, UDF.UdfNum , UDF.UdfText 
FROM NAMES INNER JOIN UDF ON NAMES.ID = UDF.NameID  
where UDF.UdfText = '307406' or udfnum in (1,3,6,7,8,9)
pero evidentemente, esto no te va a devolver sólo lo que pides, pues seguramente existirán más filas con el campo udfnun con uno de esos valores.
¿No te estarás confundiendo y realmente quieres mostrar todas las filas que tienen un valor de "udf.nameid=names.id" concreto?
Si esto es así, una posiblidad es la siguiente:
Código:
SELECT upper(NAMES.FName)+' '+ upper(NAMES.LName)as FULLNAME, b.UdfNum , b.UdfText 
FROM (NAMES INNER JOIN UDF a ON NAMES.ID = UDF.NameID) 
join UDF b on a.udfnum=b.udfnum
where a.UdfText = '307406'
and b.UdfText != '307406'
Un saludo
__________________
Estoy contagiado de Generación-I

Última edición por Vice; 24-ago-2005 a las 02:33.
Vice está desconectado   Responder Citando
Antiguo 24-ago-2005, 08:09   #8 (permalink)
Baby78 está en el buen camino
 
Avatar de Baby78
 
Fecha de Ingreso: julio-2005
Mensajes: 142
Enviar un mensaje por Yahoo  a Baby78
Te voy a mostrar mis tablas

Cita:
TABLA UDF
---------------------
ID
LOCGRP
NAMEID
UDFNUM
UDFTEXT
Cita:
TABLA NAMES
---------------------
ID
LOCGRP
LNAME
FNAME
COMPANY
NOTES
a ver si me puedes ayudar
Baby78 está desconectado   Responder Citando
Antiguo 25-ago-2005, 01:37   #9 (permalink)
Vice está en el buen camino
 
Avatar de Vice
 
Fecha de Ingreso: agosto-2003
Mensajes: 613
Con lo que pones no me das más información de la que ya he visto. Poner la estructura de los campos no es suficiente sin decir su significado ni decir como se relacionan las tablas.

¿Has probado la última consulta que te he puesto?

Un saludo
__________________
Estoy contagiado de Generación-I
Vice está desconectado   Responder Citando
Antiguo 25-ago-2005, 08:04   #10 (permalink)
Baby78 está en el buen camino
 
Avatar de Baby78
 
Fecha de Ingreso: julio-2005
Mensajes: 142
Enviar un mensaje por Yahoo  a Baby78
Si y no me funciono. Antes que nada te voy a dar las tablas bien:


Cita:
TABLA UDF
---------------------
ID int
LOCGRP int
NAMEID int //id para el empleado
UDFNUM smallint //valor para diferenciar el udftext
UDFTEXT nvarchar //Datos del empleado, dependen del udfnum


TABLA NAMES
---------------------
ID int //id para el empleado
LOCGRP int
LNAME nvarchar //Apellidos del empleado
FNAME nvarchar //Nombre del empleado
COMPANY smallint
NOTES ntext
Esto se debe hacer:
1. buscar al empleado cuando udfnum=2 es decir udftext='clave'
2. Ya que encontre al empleado igualar el valor de udfnum=2 al id (ya que id es un valor unico)
3. Despues hago una consulta para los demas datos

Bueno algo asi, espero haberme explicado y la verdad como voy empezando con esto me estoy enredando toda.

De antemano Gracias.
Baby78 está desconectado   Responder Citando
Antiguo 25-ago-2005, 08:14   #11 (permalink)
haron está en el buen camino
 
Avatar de haron
 
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 633
hola.

segun lei en tu primer post quieres que la informacion que muestre el "select" lo haga en un formato distinto.

creo que en este caso, la select inicial es correcta. deberias recoger la informacion que devuelve esa "select" y mostrarla de la manera que tu quieras.

otra cosa. si le pones nombres tan raros a la base de datos, cuando te vallas de marcha y te tomes unas cuantas cervezas (o cubatas), luego no te vas a acordar que significaban.

creo que lo mejor es seguir la siguiente momenclatura:

nombre del cliente: nombre_cliente
tiempo de acceso: tiempo_acceso
numero de cubatas por individuo: numero_cubatas_individuo

no te cortes en la longitud de las palabras. los caracteres no cuestan dinero.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
haron está desconectado   Responder Citando
Antiguo 26-ago-2005, 02:18   #12 (permalink)
Vice está en el buen camino
 
Avatar de Vice
 
Fecha de Ingreso: agosto-2003
Mensajes: 613
No, la primera consulta no está bien para obtener lo que quier.

Cita:
Esto se debe hacer:
1. buscar al empleado cuando udfnum=2 es decir udftext='clave'
2. Ya que encontre al empleado igualar el valor de udfnum=2 al id (ya que id es un valor unico)
3. Despues hago una consulta para los demas datos
La última consulta que te he puesto hace exactamente lo que tu dices, salvo que tiene una condición mal puesta:
Código:
SELECT upper(NAMES.FName)+' '+ upper(NAMES.LName)as FULLNAME, b.UdfNum , b.UdfText 
FROM (NAMES INNER JOIN UDF a ON NAMES.ID = UDF.NameID) 
join UDF b on a.nameid=b.nameid
where a.UdfText = '307406'
and b.UdfText != '307406'
sólo había que corregir la condición entre las tablas con alias a y b.
Un saludo.
__________________
Estoy contagiado de Generación-I
Vice está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:36.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93