-admin Asunto: Re: Sentencia SQL con WinSQL
@combios.es
Prueba,
Update mvxjdtamst.fgledb
set mvxjdtamst.fgledb.egbopc = '04'
where
mvxjdtamst.fgledb.egcono = 100 and mvxjdtamst.fgledb.egdivi = 'PHA'
and egacdt 20060208 and egait1 like '572%'and egbopc = '' and
exists (select * from mvxjdtamst.fgledg where
mvxjdtamst.fgledg.egcono =
:
forum.help400-admin Asunto: Re: Sentencia SQL con
WinSQL
@combios.es
:
forum.help400-admin Asunto: Re: Sentencia SQL con
WinSQL
@combios.es
No puedes hacer el update de un join. En su lugar has de hacer :
update tabla1 set campo1_1 = (select campo2_1 from tabla2 where
tabla1.clave = tabla2.clave)
where...
Te has de asegurar de que el select devuelve un solo registro.
Saludos.
Fernando Prez
Cermica Saloni. Dpto. Auditora
:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]En
nombre de Pedro Molina
Enviado el: viernes, 13 de enero de 2006 18:13
Para: forum.help400@combios.es
Asunto: RE: sentencia SQL
Si est mal
TABLA1 que tienen el mismo valor en el CAMPO1C que en el CAMPO2C de la TABLA2.
-Mensaje original-De:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]En nombre de Pedro Molina
Enviado el: viernes, 13 de enero de 2006 18:13Para: forum.help400@combios.es
Asunto: RE: sentencia SQL
Si està
y cual es el SQL que te da error?
Saludos,
Dario.-
_
- Original Message -
From: jose manuel lopez gestal [EMAIL PROTECTED]
To: forum.help400@combios.es
Sent: Friday, January 13, 2006 9:34 AM
Subject: sentencia SQL
Buenos días foro:
quiero actualizar
Yo te entendì esto:
Update TABLA1 Set (campoa) = (Select Campoc From Tabla2 From TABLA2 Where Campob = Campoc )
Esto es para SQL/400.
Espero te sirva.
Saludos !!
From:"Dario G. I. Heinze" [EMAIL PROTECTED]Reply-To:forum.help400@combios.esTo:forum.help400@combios.esSubject:Re:
.-
_
- Original Message -
From:
Pedro
Molina
To: forum.help400@combios.es
Sent: Friday, January 13, 2006 10:45
AM
Subject: Re: sentencia SQL
Yo te entendì esto:
Update TABLA1 Set (campoa) = (Select Campoc From
-Mensaje original-De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]En nombre de Dario G. I.
HeinzeEnviado el: viernes, 13 de enero de 2006
15:03Para: forum.help400@combios.esAsunto: Re: sentencia
SQL
a la sentencia comentada le faltaria un control
para los casos en que no exista
: forum.help400@combios.es
Asunto: Re: sentencia SQL
Yo te
entendì esto:
Update
TABLA1 Set (campoa) = (Select Campoc From Tabla2 From TABLA2 Where Campob =
Campoc )
Esto es
para SQL/400.
Espero
te sirva.
Saludos
!!
From:Dario
G. I
: forum.help400@combios.esAsunto: RE: sentencia
SQL
Me
dice que la palabra clave FROM es inesperada. se refiere al segundo
from
UPDATE LIBL1/TABLA1 SET CAMPO1A = (SELECT CAMPO2B FROM LIBL2/TABLA2
FROM LIBL2/TABLA2 WHERE CAMPO2C = CAMPO1C)
TABLA1 EN LIBL1 CON CAMPOS 1A, 1B y 1C
gestal
To: forum.help400@combios.es
Sent: Friday, January 13, 2006 12:05
PM
Subject: RE: sentencia SQL
Me
dice que la palabra clave FROM es inesperada. se refiere al segundo
from
UPDATE LIBL1/TABLA1 SET CAMPO1A = (SELECT CAMPO2B FROM LIBL2/TABLA2
FROM LIBL2/TABLA2 WHERE
Sorry...se me fuè un FROM de mas... es asi:
Yo te entendì esto:
Update TABLA1 Set (campoa) = (Select Campoc FromTABLA2 Where Campob = Campoc )
Asi es como lo hago yo.
Salu2
From: "Pedro Molina" [EMAIL PROTECTED]Reply-To: forum.help400@combios.esTo: forum.help400@combios.esSubject:
??
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Pedro MolinaEnviado el: viernes, 13 de enero de 2006 14:45Para: forum.help400@combios.esAsunto: Re: sentencia SQL
Yo te entendì esto:
Update TABLA1 Set (campoa) = (Select Campoc From Tabla2 From TABLA2 Where Campob = Campoc )
Es
MolinaEnviado el: viernes, 13 de enero de 2006
18:13Para: forum.help400@combios.esAsunto: RE: sentencia
SQL
Si està mal escrita, se me fuè un from de màs, esto quedarìa asi:
Yo te entendì esto
Arranca el debug y genera la sentencia SQL. En las anotaciones de trabajo
tendrás todas las acciones que se han hecho y te dirá cual es la vía de
acceso que se ha creado. Créala tu y así evitarás que lo haga el sql (al
menos así debería ser).
Saludos.
Fernando Pérez.
Cerámica Saloni. Dpto.
prueba con esto:
Select producto, fecha, max(hastafecha)
from tabla1 a, tabla2 b
where a.producto = b.producto
and fecha = hastafecha
group by producto, fecha
Un saludo,
Miguel
- Original Message -
From: Jose Luis Mur Lalueza [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Sunday,
.
Cerámica Saloni. Dpto. Sistemas
mailto:[EMAIL PROTECTED]
-Mensaje original-
De: Miguel Angel Peinador [mailto:[EMAIL PROTECTED]]
Enviado el: lunes, 16 de diciembre de 2002 10:44
Para: [EMAIL PROTECTED]
Asunto: Re: Sentencia SQL
bueno, también se puede incluir en el select (y en el group
- Original Message -
From: Fernando Pérez [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, December 16, 2002 11:19 AM
Subject: RE: Sentencia SQL
No podrías. Fíjate que si pones el precio en el group by te saldría más de
un registro por producto, y el max(fecha) sería a nivel de producto y
precio
- Original Message -
From: Fernando Pérez [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, December 16, 2002 11:19 AM
Subject: RE: Sentencia SQL
No podrías. Fíjate que si pones el precio en el group by te saldría más de
un registro por producto, y el max(fecha) sería a nivel de
relación 'producto - precio en un momento
dado'.
¿tan mal está incluido el precio en el group by?
Un saludo,
Miguel
- Original Message -
From: Fernando Pérez [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, December 16, 2002 12:06 PM
Subject: RE: Sentencia SQL
Viendo la estructura
Para: [EMAIL PROTECTED]
Asunto: Re: Sentencia SQL
Existiendo coherencia en los datos, esto es: en tabla2, la clave única
(PRODUCTO, HASTAFECHA) con una relación UNITARIA con PRECIO, mi sentencia es
correcta.
Select producto, fecha, max(hastafecha), precio
from tabla1 a, tabla2 b
where a.producto
:49 PM
Subject: RE: Sentencia SQL
A ver, me parece que no nos entendemos :)
Vamos con un ejemplo, que siempre es lo mejor:
tabla1:
producto 1, fecha 20021010
tabla2 :
producto 1, fecha hasta 20020505, precio 5
producto 1, fecha hasta 20020905, precio 10
producto 1, fecha hasta 20021231, precio
No sé si José Luis lo habrá solucionado ya :), pero después de darle alguna
vuelta más al asunto y ya que me había montado una prueba, he llegado a
esto:
Select max( digits(PREFHA) || digits(prepre))
from tabla1 , tabla2
where PREPRO = PROPRO
and PROFEC = PREFHA
group by PREPRO, PROFEC
lo que
Hola.
Tres posibles soluciones:
- La que creo más eficiente: si esa sentencia se ejecuta embebida en un
programa, créate la sentencia en un campo de texto, incluyendo la condición
o no en función de si el campo tiene de valor 'XX'. Preparas la sentencia y
la ejecutas.
- Ten dos sentencias, una
Tengo una utilidad EXSQLSTM que se comparta de la siguiente forma
pgm valor
dcl q *Char 500
dcl subq *char 500
dcl valor *char 10
if valor ¬= ' ' do
chgvar subq ('WHERE campo1 = ' || VALOR || ')
enddo
chgvar q ('SELECT *FROM ARCHIVO ' || subq | ' ')
EXSQLSTM Q
endpgm
28 matches
Mail list logo