BUSQUEDA, SUMANDO CAMPOS CARACTER * SOLUCIONADO

BUSQUEDA, SUMANDO CAMPOS CARACTER * SOLUCIONADO

Postby jbrita » Fri Jul 28, 2017 1:51 am

Amigos, necesito de su ayuda.
tengo una tabla de serviciostomados que tienen los siguientes campos:

id_abonado,mes,ano .......

mes=caracter y ano=caracter

SELECT * FROM serviciostomados WHERE (mes+ano)='72017'

no hace nada

como se podria HACERLO, gracias
Last edited by jbrita on Thu Aug 10, 2017 1:15 pm, edited 1 time in total.
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: BUSQUEDA, SUMANDO CAMPOS CARACTER

Postby Willi Quintana » Fri Jul 28, 2017 3:00 am

Hola.
Prueba asi;
Code: Select all  Expand view


SELECT * FROM serviciostomados WHERE (mes+ano)=72017

 
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: BUSQUEDA, SUMANDO CAMPOS CARACTER

Postby jbrita » Fri Jul 28, 2017 3:09 pm

Hola Willi si funciona asi pero mes+ano si es numerico provocaria problemas

7 + 2017 = 2024
6 + 2018 = 2024
5 + 2019 = 2024

te das cuenta por eso tiene q ser caracter

saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: BUSQUEDA, SUMANDO CAMPOS CARACTER

Postby cmsoft » Fri Jul 28, 2017 8:05 pm

Prueba asi
Code: Select all  Expand view

SELECT * FROM serviciostomados WHERE CONCAT(mes,ano)='72017
User avatar
cmsoft
 
Posts: 1188
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: BUSQUEDA, SUMANDO CAMPOS CARACTER

Postby jbrita » Sat Jul 29, 2017 12:31 am

Gracias eso resulto bien.

mil gracias
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: BUSQUEDA, SUMANDO CAMPOS CARACTER

Postby jbrita » Sat Jul 29, 2017 12:43 am

Amigos ahora lo arme asi:
static function generacobro()
*------------------------------
local cSql,oprn
local mescobro:=AllTrim(Str(month(date()),2))
local anocobro:=str(year(date()),4)

cSql:="INSERT INTO cartola_cliente( id_abonado,periodo_mes,periodo_ano,cod_servicio,det_servicio,valor_plan ) SELECT id_abonado,"+(mescobro)+","+(anocobro)+",cod_servicio,det_servicio,totalpagar FROM serviciostomados where CONCAT(TRIM(mes),TRIM(ano))<>'"+(mescobro+anocobro)+"' and suspendido=1"
xServer:Execute( cSql )

cSql:="UPDATE serviciostomados SET mes='"+(mescobro)+"',ano='"+(anocobro)+"'"
xServer:Execute( cSql )

MSGINFO( " Generacion de Cobro Listo..","Atencion" )

return .t.

y funciona bien pero,,, siempre hay peros, necesito validar en la cartola_cliente que lo cargado no exista

saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: BUSQUEDA, SUMANDO CAMPOS CARACTER

Postby cmsoft » Sun Jul 30, 2017 11:30 pm

Hola jbrita:
Podes hacerlo de varias maneras y dependiendo de que queres hacer en caso de que exista el dato ya en tu tabla, si cargar solo los que no estan o no cargar nada.
Una forma es validar previamente que no existan dichos datos.
Code: Select all  Expand view

if  xServer:Query("SELECT (aca la query que necesitas consultar en la tabla cartola_clientes="):nRecCount > 0
   MsgStop("Esos datos ya estan cargado","Error")
   ELSE
   cSql:="INSERT INTO cartola_cliente( id_abonado,periodo_mes,periodo_ano,cod_servicio,det_servicio,valor_plan ) SELECT id_abonado,"+(mescobro)+","+
   (anocobro)+",cod_servicio,det_servicio,totalpagar FROM serviciostomados where CONCAT(TRIM(mes),TRIM(ano))<>'"+(mescobro+anocobro)+"' and "+;
   " suspendido=1"
   xServer:Execute( cSql )

   cSql:="UPDATE serviciostomados SET mes='"+(mescobro)+"',ano='"+(anocobro)+"'"
   xServer:Execute( cSql )
   MSGINFO( " Generacion de Cobro Listo..","Atencion" )
ENDIF
 

La otra manera es si puedes definir como clave principal de tu tabla para que no se repitan los datos y validarlo directamente con el error de la base de datos
Si lo haces de la segunda forma, tambien podrias insertar en tu tabla solo los valores que no son repetidos con INSERT IGNORE
Espero que te de una pista.
Saludos
User avatar
cmsoft
 
Posts: 1188
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 6 guests