PDA

Ver la Versión Completa : Update con sql


miguelb
07-07-2003, 23:29:54
Hola a todos,
Utilizo Paradox 7
Necesito hacer lo siguiente
Tengo una tabla recibos a la cual le agregue un nuevo campo llamado identificador_recibo.
Para hacerle una carga inicial de los valores tengo que tomar el valor que tenga el campo identificador_linea del primer registro de la tabla lineas.
La tabla linea tiene como clave el numero_recibo e item_recibo,
por cada recibo, tengo que buscar la primer linea relacionada, tomar el valor del campo identificador_linea y cargarlo en indetificador_recibo.
Se puede hacer esto con sql?
Si es asi, como es la sentencia?

Desde ya muchas gracias.
Existen algun tutorial avanzado para sql en castellano?
Gracias
Miguel

jachguate
08-07-2003, 02:28:25
la verdad... no entendí tu pregunta.

Podrias tratar de ser mas claro... quizas incluir la estructura de las tablas??

__cadetill
08-07-2003, 09:51:26
No lo he probado, pero diria que seria algo asi


update recibos r
set identificador_recibo =
(select min(l.identificador_linea)
from linea l
where l.indetificador_recibo = r.indetificador_recibo)

a ver si te sirve

miguelb
10-07-2003, 15:43:09
Cadetill:

No funciono.

La sentencia que puse es la siguiente:
update as_reci.db r set soci_ar =
(select min (c.nume_ca) from as_coas.db c
where c.codi_ca = r.codi_ar
and c.cont_ca = r.cont_ar
and c.reci_ca = r.nume_ar)

Me aparece el siguiente error
Error de Base de Datos (Type mismatch in expresion)
Codigo 11871

Los campos son los siguientes (con sus tipos de datos segun Paradox) :

codi_ar A 3 CODI_CA A 3
nume_ar I RECI_CA I
CONT_ar I CONT_CA I
SOCI_ar I NUME_CA I

Sugerencias?
Gracias
Miguel

__cadetill
11-07-2003, 01:10:10
pues acabo de crear las 2 tablas en PDOX (con la unica diferencia que todos son enteros, pero que por esto no deberia de fallar) y he puesto el siguiente SQL y me ha funcionado a la perfeccion


update as_reci.db r set soci_ar =
(select min(c.nume_ca)
from as_coas.db c
where c.codi_ca = r.codi_ar and
c.cont_ca = r.cont_ar and
c.reci_ca = r.nume_ar)


usease, lo mismo que tu :confused:

El SQL esta lanzado desde el SQL Explorer, no desde una app Delphi, pero deberia de funcionar igual

P.D. : acabo de hacer un copy-paste de tu sentencia SQL y tb me a funcionado
P.D.2 : he cambiado los tipos de datos y he puesto los mismos que tu y tambien me ha funcionado

miguelb
11-07-2003, 15:13:57
Entonces que puede ser?
Que me sugeris que pruebe?
Gracias

__cadetill
11-07-2003, 23:07:20
mira de lanzar el SQL fuera del entorno de desarroyo. Si funciona, mira de poner los updates corresponientes, a ver por aqui si hacemos que funcione

miguelb
21-07-2003, 23:25:18
A pesar de ejecutarlo fuera del entorno de desarrollo no me funciono.
Creo que voy a abandonar esta solucion y hacerlo recorriendo las tablas sin sql.
Gracias
miguel

__cadetill
25-07-2003, 16:30:30
con que programa has ejecutado los SQL fuera del entorno de desarroyo? con el Database Desktop?

Has revisado tu alia a ver si esta bien configurado??

No se, son ideas