Foros del Web » Programando para Internet » ASP Clásico »

duda con consulta

Estas en el tema de duda con consulta en el foro de ASP Clásico en Foros del Web. HOla a todos, necesito vuestra ayuda, tengo una base de datos con las tablas de gce_empresas, gce_empresas2, gce_actividades. Dentro de las de empresas tengo una ...
  #1 (permalink)  
Antiguo 12/03/2007, 06:41
 
Fecha de Ingreso: octubre-2006
Mensajes: 127
Antigüedad: 17 años, 7 meses
Puntos: 0
duda con consulta

HOla a todos, necesito vuestra ayuda, tengo una base de datos con las tablas de gce_empresas, gce_empresas2, gce_actividades. Dentro de las de empresas tengo una campo que es el codigo de actividad. En en la tabla de actividades tengo el codigo con su descripcion. La consulta que tengo es esta:
sqlc="select * from gce_empresas where EMP_ACT='"&cod_activi&"' UNION select * from gce_empresas2 where EMP_ACT='"&cod_activi&"' ORDER BY EMP_NOM"


el codigo de actividad se lo paso por una variable que es cod_activi
entonces quiero que a la hora de sacar los datos saque la descripción de la actividad, para sacarlo por pantalla.

Me podeis ayudarr???? Gracias
  #2 (permalink)  
Antiguo 12/03/2007, 07:56
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: duda con consulta

estoy poniendo nombres de columnas genèricos porque no conozco los nombres que estàs utilizando, lo mismo tendrìas que hacer con la otra tabla de empresas.
Te sugiero que cuando hagas un query en tu select indiques la columna que quieres recuperar y no lo hagas de manera genèrica con el *, esto debido a que el motor de base de datos estarìa llendo a tu tabla (fìsica) cuando podrìa encontrar las columnas puntuales en tu ìndice, de esa manera te devolverìa la informaciòn màs ràpido

sqlc = "SELECT emp.cod_emp, emp.desc_emp, act.desc_actividad "
sqlc = sqlc & "FROM gce_empresas emp "
sqlc = sqlc & "INNER JOIN gce_actividad act "
sqlc = sqlc & "ON (emp.emp_act=act.cod_act) "
sqlc = sqlc & "WHERE EMP_ACT="&cod_activi&"' "
sqlc = sqlc & "ORDER BY EMP_NOM"
  #3 (permalink)  
Antiguo 13/03/2007, 17:22
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: duda con consulta

hola chikitika, & CésarBalaguer,

no entiendo mucho sobre este tipo de sentencias, ando apenas en la practica. de hecho hace poco postee sobre count, donde Myakire me respondio.

bueno, en mi caso concreto 2 tablas misma estructura, requiero los mismos campos, consulto en base a status y la inicial del nombre.

tabla1.- nombre, matricula, status, grupo
tabla2.- nombre, matricula, status, grupo

y el deplegado de los resultados los mostraria como normalmente lo he hecho????

while not RS.EOF
campos a listar.....
wend

de antemano gracias
  #4 (permalink)  
Antiguo 13/03/2007, 17:30
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: duda con consulta

Pues si ..... aunque supongo en tu query vas a colocar un AS a los campos de cada tabla (NomTbl1, MatTbl1, NomTbl2, etc), digo, ya que se llaman igual. También puedes llamarlos por su posición. ....... mmmmmm, si te referías a eso?
  #5 (permalink)  
Antiguo 13/03/2007, 17:33
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Información Re: duda con consulta

algo similar a esto?

sSQL1="SELECT nombre, status FROM LE WHERE nombre LIKE '"&letras(valor)&"%' AND status=1 "
sSQL1=sSQL1&"UNION SELECT nombre, status FROM ME WHERE nombre LIKE '"&letras(valor)&"%' AND status=1 "

AS.- creo que lei sobre eso, es el sobrenombre algo asi, cierto?, aunque la implementacion de AS no se hacerla, realmente Myakire

creo que ha esto se referia verdad?

sSQL1="SELECT nombre AS NomTbl1, status AS StaTbl1 FROM LE WHERE nombre LIKE '"&letras(valor)&"%' AND status=1 "
sSQL1=sSQL1&"UNION SELECT nombre AS NomTbl2, status AS StaTbl2 FROM ME WHERE nombre LIKE '"&letras(valor)&"%' AND status=1 "

Última edición por Shiryu_Libra; 13/03/2007 a las 17:58 Razón: Edicion de la sentencia
  #6 (permalink)  
Antiguo 14/03/2007, 09:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 127
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: duda con consulta

A mi me sirvio lo que me dijo CésarBalaguer. Y con eso lo solucione

Gracias!!!!.
  #7 (permalink)  
Antiguo 14/03/2007, 16:47
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: duda con consulta

La clausula AS sirve básicamente para darle un alias a los nombres de las columnas de tu tabla, muchas veces las columnas llevan nombres poco amigables y se le da un nombre apropiado para poder entender mejor el resultado, por ejemplo.

SELECT COD_EMP AS CODIGO_EMPRESA, ACT_ECO AS ACTIVIDAD_ECONOMICA...

dependiendo el motor de base de datos los alias van o no entre comillas.

a las tablas que van en la clausula FROM también se le pueden poner alias, sin embargo estas no llevan la clausula AS, solo se deja un espacio en blanco luego de la tabla y se pone el alias, por ejemplo

FROM tbmonp MONEDA, tacteco ACTIVIDAD

Ojala haya quedado claro, en todo caso puedes preguntar con confianza para poder explicarte.
  #8 (permalink)  
Antiguo 14/03/2007, 19:25
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: duda con consulta

Gracias por la explicacion a ustedes 3, he entendido un poco mejor el concepto, ya que antes de estos post, pues creo que lo escribi en algun post, ando apenas navegando en estos horizontes de facilitacion y rendimiento de consultas.

y retomando el ejemplo que haz puesto para chikitika, y aunado a lo que myakire, dijo sobre el alias..... creo que mi consulta seria ejecutada de esta forma, ya que busco 2 valores en la misma sentencia

sSQL1="SELECT lic.nombre, lic.status "
sSQL1=sSQL&"FROM LE lic "
sSQL1=sSQL&"INNER JOIN ME pos "
sSQL1=sSQL&"ON (lic.nombre=pos.nombre and lic.status=pos.status) "
sSQL1=sSQL&"WHERE nombre LIKE '"&letras(valor)&"%'
AND status=1""

espero no reprobar el tema
  #9 (permalink)  
Antiguo 15/03/2007, 09:39
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Re: duda con consulta

Una consulta, si las dos columnas que muestras estan en una sola tabla y el join que haces es precisamente por las mismas dos columnas, para que quisieras hacer el join con la otra tabla? por otro lado, y en caso de ser necesario el join, dentro de tu clausula where no olvides agregar los alias que pusiste, de no hacerlo te va a salir un error que indique que las columnas son ambiguas ya que estan en ambas tablas.

Saludos.
  #10 (permalink)  
Antiguo 15/03/2007, 12:59
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: duda con consulta

ahora si que me he quedado con cara de

_____LE____________________________ME
nombre___Status _________ Nombre_______Status
josue___|___1____________ jimeno_____|____1
jacinto__|___1____________ javier _____|____2
javier___|___2____________ anastacia __|____3

basicamente esa es la estrucutra, donde si es 1 esta activo(inscrito), caso contrario 2, baja, 3 graduado


sSQL1=sSQL & " WHERE nombre LIKE ' " & letras(valor) & " % ' AS lic.nombre, AND status=1 AS lic.status;"
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 16:52.