PDA

Ver la Versión Completa : Fraccionar un Campo


alcides
03-10-2005, 18:44:32
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.

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:


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.

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.


where cuenta like '%' + @Nombre + '%'


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


where len(cuenta) = @longitud


Saludos.

Vicente López.

marcoszorrilla
06-10-2005, 18:17:19
Si el valor es numérico:
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...


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.