Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Update con sql (https://www.clubdelphi.com/foros/showthread.php?t=2073)

miguelb 07-07-2003 23:29:54

Update con sql
 
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

Código:

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

Código:

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


La franja horaria es GMT +2. Ahora son las 15:36:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi