Problema para cambiar registros en una aplicación creada con el programa Visual FoxPro
Hola experto tengo un problema que no puedo resolver solo se trata de colocar "N" a los clientes Nuevos que se atienden en este año solo para el 2008 y "C" a los clientes que se atienden más de una vez osea por primera vez en el año N y por segunda vez el mismo cliente es "C" gracias por su atención.
No explicas bien tu problema o tus requrimientos, pero por lo quedices puedes inetntar lo sig. Agregas un campo nuevo en la tabla clientes de tipo carácter longitud1 luego cuando se atiena al cliente comprasa, haces: if empty(tabla.campo_nuevo) replace tabla.campo_nuevo with 'N' in tabla else replace tabla.campo_nuevo with 'C' in tabla endif solo ten cuidado que al agregar al cliente no agreges valor a el campo nuevo asi con el if, si esta bacio eso indica que se acaba de crear qy por lotanto es la primeraves que se atiende, si no esta bacio es que tiene una letra ya sea la N o la C , y por lo tanto ya se a atendido porlomenos una ves. Espero eso te ayude, si no responde eso tu pregunta enviame más información y la estructura de tus tablas... sale suerte by
Hola experto gracias por contestar, tratare de explicarme mejor tengo dos tablas una borrador y otra principal con columnas (campos) iguales como "codigo_cliente" y "condicion", en la tabla borrador me están entregando con 1000 registros y en la tabla principal ya tengo alrededor de 2500 registros, lo que necesito es agregar los 1000 registros a la tabla principal, entonces verificar por medio del codigo_cliente si hay un codigo_cliente igual si fuera así entonces en condición coloco "C" de lo contrario serian "N" un ejemplo creo que así me dejare entender mejor, en la tabla borrador la columna condición esta vacía tabla borrador tabla principal codigo_cliente condición codigo_cliente condición 01 01 N 02 01 C 03 02 N 04 05 N 04 06 N 05 06 C 05 07 N El resultado final en la tabla Principal agregando los registros seria así : codigo_cliente Condicion 01 N 01 C 01 C 02 N 02 C 03 N 04 N 04 C 05 N 05 C 05 C 06 N 06 C 07 N Gracias amigo
Disculpa por contestar demasiado tarde. Ojala te siva aun la respuesta intenta esto , si el cursor resultante es lo que realmente quieres entonces solo quedara guardar los cursores auxiliares y parte del recultado SELECT codigo,RECNO() num_reg FROM borrador INTO CURSOR auxiliar SELECT codigo, MAX(num_reg) num_reg FROM auxiliar GROUP BY 1 HAVING COUNT(codigo)>1 INTO CURSOR auxiliar SELECT b.codigo, IIF(b.codigo = a.codigo AND RECNO() <> a.num_reg , 'C','N') obs FROM borrador b LEFT JOIN ; auxiliar a ON b.codigo=a.codigo INTO CURSOR borrador2 ** con lo anterior creamos un cursor que nos muestra el codigo y que letra debe llevar (C o N) para ello me base en saber que registro es el mas reciente y entonces a ese se le pone N los demas C SELECT o.codigo, IIF(EMPTY((SELECT COUNT(codigo) FROM borrador b WHERE o.codigo = b.codigo)), o.obs, 'C') obs FROM original o; UNION ALL ; select * FROM borrador2 ** con este select creamos el recultado final.che calo si asi es como lo quieres entonces solo has lo siguiente SELECT o.codigo, IIF(EMPTY((SELECT COUNT(codigo) FROM borrador b WHERE o.codigo = b.codigo)), o.obs, 'C') obs , ; RECNO() num_reg FROM original o INTO CURSOR ori2 UPDATE original SET original.obs = ori2.obs from ori2 WHERE RECNO() = ori2.num_reg INSERT INTO original (codigo, obs) SELECT * FROM borrador2 prueba esto....... aunque te soy cincero, nose cuales sean tus requerimientos en el sistema, pero deberias checarlos, porque este metodo puede ser mas simple.............. checalo.......... cualquier duda estoy para ayudarte.