Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Como realizar esta consulta

Estas en el tema de Como realizar esta consulta en el foro de Bases de Datos General en Foros del Web. Hola a tod@s. Tengo en access estas tablas: pueblos: Idpueblo (num) Idprovincia (num) pueblo (texto) provincias: Idprovincia (num) provincia (texto) Como puedo hacer (en asp) ...
  #1 (permalink)  
Antiguo 17/11/2005, 08:42
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Como realizar esta consulta

Hola a tod@s.
Tengo en access estas tablas:

pueblos:
Idpueblo (num)
Idprovincia (num)
pueblo (texto)

provincias:
Idprovincia (num)
provincia (texto)

Como puedo hacer (en asp) una consulta que dado un Idpueblo me escriba la provincia.
Supongo que será una tonteria, pero es mi primera consulta de dos tablas.
Gracias.
  #2 (permalink)  
Antiguo 17/11/2005, 09:05
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
SELECT provincia
FROM pueblos pu, provincias pr
WHERE pu.Idprovincia=pr.Idprovincia
AND Idpueblo=tunumero

el standard de modelamiento dice que los nombres de las tablas van en singular, te lo recomiendo.

Cualquier cosa avisas
  #3 (permalink)  
Antiguo 17/11/2005, 10:52
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Muchas gracias por contestar.
No me ha funcionado. No se que tengo mal.
Te escribo parte del código que tengo en la página que estoy haciendo a ver si sabes donde tengo el problema


<%local= Request.QueryString("loc")

SQL="SELECT provincia FROM provincias pr, pueblos pu WHERE pu.Idprovincia=pr.Idprovincia and pueblo=local"
set rs = oConn.Execute(SQL) %>

<table width="350" height="93" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="342"><a href="http://alquiler_vacaciones_2.asp?prov=<%=RS("Idprovincia" )%>">Alquiler vacaciones <%=UCASE(RS("provincia"))%></a></td>
</tr>


Te pongo en negrita donde me da el error. Yo quisiera que me salga el nombre de la provincia ahi.
Estoy hecha un lio.
un Saludo y gracias de nuevo
  #4 (permalink)  
Antiguo 17/11/2005, 11:12
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Código:
<%
local= Request.QueryString("loc")

SQL ="SELECT provincia "
SQL =  SQL + " FROM provincias pr, pueblos pu "
SQL =  SQL + " WHERE " 
SQL =  SQL + " pu.Idprovincia=pr.Idprovincia and " 
SQL =  SQL + " pueblo= '" & local & "'"

set rs = oConn.Execute(SQL)

%>
  #5 (permalink)  
Antiguo 17/11/2005, 11:37
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Gracias Andres.
Lo he hecho y me sale este error:

Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.


Sabes que puede ser?
Gracias.
  #6 (permalink)  
Antiguo 17/11/2005, 11:50
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Si,

que no tienes el campo idprovincia en tu consulta y en tu pagina si lo quieres desplegar.
entonces, la consulta deberia quedar como...


Código:
<%
local= Request.QueryString("loc")

SQL ="SELECT Idprovincia, provincia "
SQL =  SQL + " FROM provincias pr, pueblos pu "
SQL =  SQL + " WHERE " 
SQL =  SQL + " pu.Idprovincia=pr.Idprovincia and " 
SQL =  SQL + " pueblo= '" & local & "'"

set rs = oConn.Execute(SQL)

%>
  #7 (permalink)  
Antiguo 17/11/2005, 11:59
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Lo he vuelto a probar y ahora me sale este error:

Tipo de error:
Microsoft JET Database Engine (0x80004005)
Puede que el campo 'Idprovincia' especificado haga referencia a más de una tabla de las mostradas en la cláusula FROM de la instrucción SQL.


Gracias de nuevo.
  #8 (permalink)  
Antiguo 17/11/2005, 12:06
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
El error es bastante descriptivo...

en la misma consulta tienes la respuesta...


las dos tablas tienen un mismo campo, solo especifica de cual tabla lo quieres

un saludo!
  #9 (permalink)  
Antiguo 17/11/2005, 12:10
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
He puesto así: (no se si es a eso a lo que se refiere)

SQL ="SELECT provincias.Idprovincia, provincia "
SQL = SQL + " FROM provincias pr, pueblos pu "
SQL = SQL + " WHERE "
SQL = SQL + " pu.Idprovincia=pr.Idprovincia and "
SQL = SQL + " pueblo= '" & local & "'"

y ahora me da el siguiente error:
No se han especificado valores para algunos de los parámetros requeridos.

Soy un desastre, ya ves que no tengo ni idea.
Gracias por tu ayuda.
  #10 (permalink)  
Antiguo 17/11/2005, 12:15
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Código:
SQL ="SELECT pr.Idprovincia, pr.provincia "
SQL = SQL + " FROM provincias pr, pueblos pu "
SQL = SQL + " WHERE " 
SQL = SQL + " pu.Idprovincia=pr.Idprovincia and " 
SQL = SQL + " pueblo= '" & local & "'"
verifica que tenga valor la variable local...
  #11 (permalink)  
Antiguo 17/11/2005, 12:24
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Si que tiene porque la he escrito en la página y tiene un numero como valor

No se donde puede estar el fallo.
  #12 (permalink)  
Antiguo 18/11/2005, 07:08
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
[QUOTE=Andres95]
Código:
SQL ="SELECT pr.Idprovincia, pr.provincia "
SQL = SQL + " FROM provincias pr, pueblos pu "
SQL = SQL + " WHERE " 
SQL = SQL + " pu.Idprovincia=pr.Idprovincia and " 
SQL = SQL + " pueblo= '" & local & "'"
QUOTE]

Con el respeto que todos se merecen

la ultima linea que modifico Andres95 es:

SQL = SQL + " pueblo= '" & local & "'"

y canela2 especificó:

Cita:
Idpueblo (num)
  #13 (permalink)  
Antiguo 18/11/2005, 10:44
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
muy cierto... ya que no cheque la definicion que se hacia de la tabla solo la ultima consulta posteada en la que no se separaba la variable de la sentencia...


un saludo...
  #14 (permalink)  
Antiguo 18/11/2005, 13:44
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Sigue sin funcionar.
Me rindo, no encuentro solución.
Gracias por vuestra ayuda.
  #15 (permalink)  
Antiguo 18/11/2005, 14:55
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
[QUOTE=Developer9]
Cita:
Iniciado por Andres95
Código:
SQL ="SELECT pr.Idprovincia, pr.provincia "
SQL = SQL + " FROM provincias pr, pueblos pu "
SQL = SQL + " WHERE " 
SQL = SQL + " pu.Idprovincia=pr.Idprovincia and " 
SQL = SQL + " pueblo= '" & local & "'"
QUOTE]

Con el respeto que todos se merecen

la ultima linea que modifico Andres95 es:

SQL = SQL + " pueblo= '" & local & "'"

y canela2 especificó: IdPueblo(num)

oye Developer... si es cierto que el id es numerico... y por un momento me confundi... d:)

pero fijate...

la consulta no dice IdPueblo sino simplemente Pueblo.

pueblos:
Idpueblo (num)
Idprovincia (num)
pueblo (texto)

y pueblo es texto... d:D asi que eso explicaria el porque le puse comillas... d:D

como ves?

bueno canela...

lo que seria bueno aclarar es cual es el campo en el que quieres buscar...

en idpueblo o pueblo...


¿que valor trae la variable "local" ?

es el id del registro o la descripcion del pueblo...para saber como quedaria la consulta...

** aunque supongo que lo mas logico es que sea IdPueblo...para hacer una busqueda por medio del indice.

d:D


un saludo...
  #16 (permalink)  
Antiguo 19/11/2005, 10:01
 
Fecha de Ingreso: junio-2005
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola de nuevo.
La variable local trae un numero que seria el numero de pueblo (idpueblo)
Y necesito:

Dado un Idpueblo que me devuelva el nombre de la provincia (provincia)
Jo, es que lo veo tan facil y luego no me sale.
Un saludo
  #17 (permalink)  
Antiguo 21/11/2005, 08:32
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
entonces seria algo como:


Código:
SQL ="SELECT pr.Idprovincia, pr.provincia "
SQL = SQL + " FROM provincias pr, pueblos pu "
SQL = SQL + " WHERE " 
SQL = SQL + " pu.Idprovincia=pr.Idprovincia and " 
SQL = SQL + " pu.IdPueblo= " & local
  #18 (permalink)  
Antiguo 21/11/2005, 19:03
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
simon... lo mismo que yo puse, sin agregar el campo idprovincia.

Los prefijos no son necesarios porque no hay campos repetidos, exepto en el where donde se hace el join entre las dos tablas
  #19 (permalink)  
Antiguo 22/11/2005, 08:29
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Cita:
Iniciado por Developer9
exepto en el where donde se hace el join entre las dos tablas

y en el select... ya que se requiere tambien el idprovincia para crear la liga...

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 22:59.