Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Fraccionar un Campo (https://www.clubdelphi.com/foros/showthread.php?t=25765)

alcides 03-10-2005 18:44:32

Fraccionar un Campo
 
Hola a todos,
con este qry, trato de leer del campo CUENTA las cuentas hasta 4 posiciones
pero salen las de 3 posiciones, como hago para que solo salgan las de 4 posiciones.

esto es lo que tengo.

Código PHP:

SELECT MID(CUENTA,1,4),FECHA_TRANSACION,SUM(DEBITO) AS TOTAL_DEBITO,SUM(CREDITO) AS TOTAL_CREDITO 
FROM        DETALLE 
WHERE     FECHA_TRANSACION 
>= :PFECHA_DESDE 
AND           FECHA_TRANSACION <= :PFECHA_HASTA
AND           MID(CUENTA,1,7)          = :PCUENTA
GROUP BY MID
(CUENTA,1,7),FECHA_TRANSACION

Gracias mil, por la ayuda que me puedan brindar,


Alcides
Rep.Dom.

marcoszorrilla 03-10-2005 18:47:59

Qué motor estas utilizando Ado + Acces ?.....
En cualquier caso la función está correctamente planteada y te tiene que funcionar, has mirado a ver si cuenta por algún motivo tiene un espacio en blanco.


Un Saludo.

droguerman 03-10-2005 18:48:26

q valores tienes en tu tabla??

vtdeleon 03-10-2005 18:48:35

Saludos

Tirando tiros al aire, chequea en Where con Lenght(cuenta)=4 :rolleyes:

alcides 03-10-2005 18:52:32

gracias a todos,

utilizo access

funciona bien, el asunto es que quiero acumular solo las cuentas hasta 4 posiciones y que las de 3 no salgan.

he buscado ayuda en sql sobre MID y no he podido encontrar nada,
si me pueden decir donde obtengo ayuda sobre MID.


Gracias mil

Alcides
Rep.Dom.

alcides 05-10-2005 21:54:11

gracias a todos,


he buscado ayuda en sql sobre MID y no he podido encontrar nada,
si me pueden decir donde obtengo ayuda sobre MID.

Gracias mil

Alcides
Rep.Dom.

marcoszorrilla 05-10-2005 23:05:06

Aqui tienes un ejemplo hecho directamente en Access:

Código SQL [-]
 SELECT AUTORES.AUTOR, AUTORES.NOMBRE, Mid([nombre],1,2) AS abc
 FROM AUTORES;

Un Saludo.

alcides 06-10-2005 14:12:09

hola a todos,
atención: Marcoszorrilla

chequeen este ejemplo:
tengo un numero de cuenta y un valor.
el campo cuenta es string y valor es numerico.

cuenta = '12345' valor = 450.00
cuenta = '12345' valor = 200.00
cuenta = '123' valor = 380.00

entonces con esto:

mid(cuenta),1,4)

quiero que salgan solamente

cuenta = '12345' valor = 450.00
cuenta = '12345' valor = 200.00

no he podido obtener esto,

si me pueden ayudar por fa

gracias mil

Alcides
Rep.Dom.

marcoszorrilla 06-10-2005 15:40:28

El planteamiento entonces es distinto.
Código SQL [-]
 Where Cuenta Like "12345%"
 //para Access
 Where cuenta like "12345*"

Un Saludo.

alcides 06-10-2005 17:33:28

Hola a todos
atención: Marcoszorrilla

ok.
Where cuenta like "1234*"
Mi pregunta es la siguiente como 1234 es un ejemplo de un numero cualquiera quisiera saber si ese 1234 puedo sustituirlo por ejemplo asi:
Where cuenta like "####*"


Gracias mil

Alcides
Rep.Dom.

marcoszorrilla 06-10-2005 17:56:25

No se puede, explícate un poco más a ver si logramos ponerlo en marcha.

Un Saludo.

alcides 06-10-2005 18:05:48

Hola a todos,

Atención: Marcoszorrilla.

me explico:

resulta que tengo tabla con un campo string CUENTA y tengo un campo numerico VALOR, entonces CUENTA es campo que su contenido va cambiar de tamaño, puede tener dos digitos, tres digitos, cuatro digitos, cinco digitos, seis digitos y hasta siete digitos. y quiero que cuando utilize mi query MID(CUENTA,1,4) solo salgan las cuentas con cuatro digitos: porque de esta forma salen las de 4 digitos y tambien las de 3 digitos, ese es el problema.


espero me entiendan, sino de todos modos, gracias mil.


Gracias mil,

Alcides
Rep.Dom.

Chente(rMan) 06-10-2005 18:06:14

Creo que asi se puede.

Código SQL [-]
where cuenta like '%' + @Nombre + '%'

edito:
creo que necesitas poner esto, donde longitud es la longitud de la cuenta que quieres.

Código SQL [-]
where len(cuenta) = @longitud

Saludos.

Vicente López.

marcoszorrilla 06-10-2005 18:17:19

Si el valor es numérico:
Código SQL [-]
Where valor > 999 and Valor < 10000

Un Saludo.
]

alcides 06-10-2005 18:22:57

hola a todos,

Marcos el asunto no es con el campo valor es con el campo cuenta que es string

voy a chequear lo de Chente(rman)

Gracias mil

Alcides
Rep.Dom.

alcides 06-10-2005 20:19:55

Gracias Chente(rman) funciona, pero no entiendo porque comienza a traerme las cuentas desde 1411 en lugar 1111.

tiene salir este orden 1111
1112
1113
1411
1414

y comienza en la 1411
1414

pero voy a seguir, porque con esto

where len(cuenta) = 4

parece que voy a resolver


Gracias mil,

Alcides
Rep.Dom.

Chente(rMan) 06-10-2005 20:23:38

y si le agregas...

Código SQL [-]
order by cuenta


Saludos

Vicente López.

alcides 06-10-2005 20:29:12

gracias Chente(rman) por tu repuesta, pero no es por el order by, es que no la esta tomando en cuenta esas CUENTAS.

pero voy a seguir investigando.


Gracias mil,


Alcides
Rep.Dom.


La franja horaria es GMT +2. Ahora son las 01:41:23.

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