Busqueda / Insercion

23/08/2006 - 20:45 por Omar Castillo | Informe spam
Buenos dias, uso el siguiente query para actualizar mi tabla con nuvos
datos qeu recibo.
Lo que necesito que haga aparte de hacer lo que hace ahorita,me
reemplace los archivos de MITABLA si es que el registro de MITABLA_tmp
es menor en la col010

Me explico???


Insert into MITABLA
(Col001,Col002,Col003,Col004,Col005,Col006,Col007,Col008,Col009,Col010)
SELECT DISTINCT Col001, max(col002) as Col002,max(col003) as col003,
max(col004) as col004,max(col005) as col005,Col006,max(col007)
as col007 ,
max(col008) as col008,max(col009) as col009,min(col010) as col010
FROM MITABLA_tmp
WHERE NOT EXISTS
(
SELECT distinct Col001, col006, col010
FROM MITABLA
WHERE MITABLA.Col001 = Op_Tmp.Col001 and MITABLA.Col006 =
Op_Tmp.Col006
)

group by col001, col006
order by col001, col006, col010

Preguntas similare

Leer las respuestas

#1 Isaias
23/08/2006 - 20:46 | Informe spam
Omar

Como quieres hacer una actualizacion, tendras que hacer una rutina de UPDATE.
Saludos
IIslas


"Omar Castillo" wrote:

Buenos dias, uso el siguiente query para actualizar mi tabla con nuvos
datos qeu recibo.
Lo que necesito que haga aparte de hacer lo que hace ahorita,me
reemplace los archivos de MITABLA si es que el registro de MITABLA_tmp
es menor en la col010

Me explico???


Insert into MITABLA
(Col001,Col002,Col003,Col004,Col005,Col006,Col007,Col008,Col009,Col010)
SELECT DISTINCT Col001, max(col002) as Col002,max(col003) as col003,
max(col004) as col004,max(col005) as col005,Col006,max(col007)
as col007 ,
max(col008) as col008,max(col009) as col009,min(col010) as col010
FROM MITABLA_tmp
WHERE NOT EXISTS
(
SELECT distinct Col001, col006, col010
FROM MITABLA
WHERE MITABLA.Col001 = Op_Tmp.Col001 and MITABLA.Col006 =
Op_Tmp.Col006
)

group by col001, col006
order by col001, col006, col010

Respuesta Responder a este mensaje
#2 BitOne®
24/08/2006 - 06:21 | Informe spam
Ok. veamos primero un detallito.

al postear codigo intentar hacerlo de la manera mas legible posible asi se
puede entender mas rapido la idea y podemos
todos ayudar mas rapido :)

a ver si este te funciona.

Insert into MITABLA
(Col001,Col002,Col003,Col004,Col005,Col006,Col007,Col008,Col009,Col010)
SELECT DISTINCT
a.Col001,
max(a.col002) as Col002,
max(a.col003) as col003,
max(a.col004) as col004,
max(a.col005) as col005,
a.Col006,
max(a.col007) as col007,
max(a.col008) as col008,
max(a.col009) as col009,
min(a.col010) as col010
FROM MITABLA_tmp a
left join
MITABLA b
on a.col001 = b.col001
and a.col006 = b.col006
WHERE b.col001 is null
Group by a.col001, a.col006
order by a.col001, a.col006, a.col010
Go
UPDATE a
set a.Col001 = b.col001
,a.Col002 = b.col002
,a.Col003 = b.Col003
,a.Col004 = b.Col004
,a.Col005 = b.Col005
,a.Col006 = b.Col006
,a.Col007 = b.Col007
,a.Col008 = b.Col008
,a.Col009 = b.Col009
,a.Col010 = b.Col010
from mitabla a
inner join
mitabla_tmp b
on a.col001 = b.col001
and a.col006 = b.col006
where a.col010 > b.col010
Go




"Omar Castillo" wrote in message
news:%
Buenos dias, uso el siguiente query para actualizar mi tabla con nuvos
datos qeu recibo.
Lo que necesito que haga aparte de hacer lo que hace ahorita,me
reemplace los archivos de MITABLA si es que el registro de MITABLA_tmp
es menor en la col010

Me explico???


Insert into MITABLA
(Col001,Col002,Col003,Col004,Col005,Col006,Col007,Col008,Col009,Col010)
SELECT DISTINCT Col001, max(col002) as Col002,max(col003) as col003,
max(col004) as col004,max(col005) as col005,Col006,max(col007)
as col007 ,
max(col008) as col008,max(col009) as col009,min(col010) as col010
FROM MITABLA_tmp
WHERE NOT EXISTS
(
SELECT distinct Col001, col006, col010
FROM MITABLA
WHERE MITABLA.Col001 = Op_Tmp.Col001 and MITABLA.Col006 > Op_Tmp.Col006
)

group by col001, col006
order by col001, col006, col010
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida