FoxPro/Visual FoxPro - consultar por nombre de mes una fecha visual foxpro

 
Vista:
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 03/03/2017 19:40:16
hola buen día a todos tengo una duda

tengo mi tabla MGW10008 de allí quiero consultar cidclien01 y cfecha
pero quiero que envés de mostrar la fecha muestre el nombre del mes
hago como la consulta sql


select cidclien01, DATANAME(MONTH,cfecha) from MGW10008


he buscado para hacerlo en visual fox pro y no he sabido hacerlo
y después lo quiero consultar en un datagridview de visual basic 2012

por lo pronto quisiera saber como hacerlo en vfp


error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 04/03/2017 01:00:29
Siempre y cuando el campo cfecha sea del tipo Date, solo debes aplicar la sintaxis correcta de la función MONTH, es decir:

DATANAME(MONTH(cfecha) )

puedes utilizar también la funcion CMONTH(() para que retorne el nombre del mes, solo que esté estará el idioma ingles por defecto, o a el idioma de la DLL del runtime de VFP que le indiques a tu programa (vfp9resn.dll)para español..

CMONTH(cFecha)

Espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 05/03/2017 22:49:38
muchas gracias no me funciono con DATANAME(MONTH(cfecha) )
pero con CMONTH(() si te agradezco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 06/03/2017 19:51:23
Por nada, a la orden.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 06/03/2017 20:02:29
disculpa por casualidad sabes como usar pivot en vfp?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 06/03/2017 21:44:43
VFP no tiene implícito Pivot (Cubos OLAP), para ello VFP utiliza Microsoft Excel y requiere que este tenga instalado Microsoft Query de 32 Bits.

Ya probaste utilizar la clase pivotable que trae VFP?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 06/03/2017 22:17:56
la verdad soy nuevo
en el trabajo me encargaron hacer una tabla que muestre datos con sus respectivos meses en forma horizontal y encontré que mi solución era el pivot la verdad apenas me ando adentrando a vfp
intentare con pivotable no sabia que existía ese comando muchas gracias por la ayuda
lo probare
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 07/03/2017 14:25:40
Desde VFP puedes generar ese tipo de consultas por meses , recuerda que VFP cuenta con la tecnología Rushmore para optimización en SQL, indica cuales con los campos (Tipo de dato) que tienen la información para lo que necesitas mostrar y a que niveles requieres totalizar y puedo orientarte o darte algunas recomendaciones a ver si logras el objetivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 07/03/2017 16:21:57
me gustaría mucho tu ayuda
básicamente esto es lo que necesito mostrar en un data grid view en visual studio 2012
pero quiero verlo funcionar primero en vfp

tabla MGW10008
cfehca mi fila donde esta la fecha
cneto la fila donde tengo la cantidad
crazonso01 es la fila que contiene la razón social

este código lo intente

SELECT crazonso01,
SUM(CASE MONTH(cfecha) when 1 then cneto else 0 end) as ENERO,
SUM(CASE MONTH(cfecha) when 2 then cneto else 0 end) as FEBRERO,
SUM(CASE MONTH(cfecha) when 3 then cneto else 0 end) as MARZO,
SUM(CASE MONTH(cfecha) when 4 then cneto else 0 end) as ABRIL,
SUM(CASE MONTH(cfecha) when 5 then cneto else 0 end) as MAYO,
SUM(CASE MONTH(cfecha) when 6 then cneto else 0 end) as JUNIO,
SUM(CASE MONTH(cfecha) when 7 then cneto else 0 end) as JULIO,
SUM(CASE MONTH(cfecha) when 8 then cneto else 0 end) as AGOSTO,
SUM(CASE MONTH(cfecha) when 9 then cneto else 0 end) as SEPTIEMBRE,
SUM(CASE MONTH(cfecha) when 10 then cneto else 0 end) as OCTUBRE,
SUM(CASE MONTH(cfecha) when 11 then cneto else 0 end) as NOVIEMBRE,
SUM(CASE MONTH(cfecha) when 12 then cneto else 0 end) as DICIEMBRE
FROM MGW10008
GROUP BY crazonso01
ORDER BY crazonso01


pero manda error cuando lo ejecuto de esta forma

( Nombre de la función que falta ) derecho )


lo saque de a qui en la parte de modo estático
https://msdn.microsoft.com/es-es/library/bb972197.aspx#figura01
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 07/03/2017 18:58:07
La instrución SQL tiene sintaxis correcta, pero para SQL Server u otro manejador de Base de Datos. En el caso de VFP puedes usar ICASE() o IIF(), y debes tener presenta que cuando el resultado es falso, la parte que es numérica se crea entero (integer) si este es 0, para que asuma real debe de indicarse 0.00 y si tu monto es grande debes indicar tantos ceros como la parte entera de la cifra ej: 00000000000000.00, lo otro que yo aplico cuando asigno nombre a las columnas de la consulta, las indico entre comillas simples.

Tu consulta puede ser de la siguiente manera:

Utilizando ICASE()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT crazonso01,;
	SUM(ICASE(MONTH(cfecha) = 1,cneto,0.00) AS 'ENERO',;
	SUM(ICASE(MONTH(cfecha) = 2,cneto,0.00) AS 'FEBRERO',;
	SUM(ICASE(MONTH(cfecha) = 3,cneto,0.00) AS 'MARZO',;
	SUM(ICASE(MONTH(cfecha) = 4,cneto,0.00) AS 'ABRIL',;
	SUM(ICASE(MONTH(cfecha) = 5,cneto,0.00) AS 'MAYO',;
	SUM(ICASE(MONTH(cfecha) = 6,cneto,0.00) AS 'JUNIO',;
	SUM(ICASE(MONTH(cfecha) = 7,cneto,0.00) AS 'JULIO',;
	SUM(ICASE(MONTH(cfecha) = 8,cneto,0.00) AS 'AGOSTO',;
	SUM(ICASE(MONTH(cfecha) = 9,cneto,0.00) AS 'SEPTIEMBRE',;
	SUM(ICASE(MONTH(cfecha) = 10,cneto,0.00) AS 'OCTUBRE',;
	SUM(ICASE(MONTH(cfecha) = 11,cneto,0.00) AS 'NOVIEMBRE',;
	SUM(ICASE(MONTH(cfecha) = 12,cneto,0.00) AS 'DICIEMBRE';
FROM MGW10008 ;
GROUP BY crazonso01;
ORDER BY crazonso01

Utilizando IIF():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT crazonso01,;
	SUM(IIF(MONTH(cfecha) = 1,cneto,0.00) AS 'ENERO',;
	SUM(IIF(MONTH(cfecha) = 2,cneto,0.00) AS 'FEBRERO',;
	SUM(IIF(MONTH(cfecha) = 3,cneto,0.00) AS 'MARZO',;
	SUM(IIF(MONTH(cfecha) = 4,cneto,0.00) AS 'ABRIL',;
	SUM(IIF(MONTH(cfecha) = 5,cneto,0.00) AS 'MAYO',;
	SUM(IIF(MONTH(cfecha) = 6,cneto,0.00) AS 'JUNIO',;
	SUM(IIF(MONTH(cfecha) = 7,cneto,0.00) AS 'JULIO',;
	SUM(IIF(MONTH(cfecha) = 8,cneto,0.00) AS 'AGOSTO',;
	SUM(IIF(MONTH(cfecha) = 9,cneto,0.00) AS 'SEPTIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 10,cneto,0.00) AS 'OCTUBRE',;
	SUM(IIF(MONTH(cfecha) = 11,cneto,0.00) AS 'NOVIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 12,cneto,0.00) AS 'DICIEMBRE';
FROM MGW10008 ;
GROUP BY crazonso01;
ORDER BY crazonso01

Prueba a ver si te funcionan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 07/03/2017 20:13:48
estos son algunos de los datos

a


a qui es donde hago la consulta pero la hago de forma horizontal ya que si la escribo tal y como esta me marca error y solo trata de consultar una linea tambien recorte que solo sea enero y febrero para no alargarlo mucho


a2


Error que te comentaba si lo coloco tal cual

a1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 07/03/2017 21:40:23
Por favor prueba ahora con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SET ENGINEBEHAVIOR 70
 
SELECT crazonso01,;
	SUM(IIF(MONTH(cfecha) = 1,cneto,0) AS 'ENERO',;
	SUM(IIF(MONTH(cfecha) = 2,cneto,0) AS 'FEBRERO',;
	SUM(IIF(MONTH(cfecha) = 3,cneto,0) AS 'MARZO',;
	SUM(IIF(MONTH(cfecha) = 4,cneto,0) AS 'ABRIL',;
	SUM(IIF(MONTH(cfecha) = 5,cneto,0) AS 'MAYO',;
	SUM(IIF(MONTH(cfecha) = 6,cneto,0) AS 'JUNIO',;
	SUM(IIF(MONTH(cfecha) = 7,cneto,0) AS 'JULIO',;
	SUM(IIF(MONTH(cfecha) = 8,cneto,0) AS 'AGOSTO',;
	SUM(IIF(MONTH(cfecha) = 9,cneto,0) AS 'SEPTIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 10,cneto,0) AS 'OCTUBRE',;
	SUM(IIF(MONTH(cfecha) = 11,cneto,0) AS 'NOVIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 12,cneto,0) AS 'DICIEMBRE';
FROM MGW10008 ;
GROUP BY crazonso01 ;
ORDER BY crazonso01
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 07/03/2017 23:13:12
cuando le di a la consulta no realizo nada

no se si este muy ocupado y tenga tiempo para mi
queria saber si pudiera conectarse por medio de team viwer y mostrarme quisa lo este haciendo mal

aa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 08/03/2017 02:02:24
La instrucción SET ENGINEBEHAVIOR 70 es separada del Select SQL.
Esta instrucción es la que va a permitir que el GROUP BY haga la totalización y no busque el Max de Tally.

Se puede declarar al principio del programa o rutina donde usarás el SQL para totalización por GROUP .

Pon el código en un .prg o cuando lo pegues en la ventana de comandos, seleccionalo con el mouse y haz clic con el botón derecho sobre el área seleccionada y escoge la opción Execute Selection del menú emergente de la ventana de comandos.

Otra cosa importante: agrega un espacio antes del punto y coma (;) del campo DICIEMBRE, puede concatenar el campo con la instrucción from del Select y generar error.

No: SUM(IIF(MONTH(cfecha) = 12,cneto,0) AS 'DICIEMBRE';
Si: SUM(IIF(MONTH(cfecha) = 12,cneto,0) AS 'DICIEMBRE' ;

Si no logras, entonces probamos a través del teamviewer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 08/03/2017 16:10:34
no logro conseguirlo quise mostrar enero y febrero para que se vea el código completo ya que si me to todos no se vera en la captura de pantalla, revise los espacios y comas también realice la instrucción SET ENGINEBEHAVIOR 70 y sigue con el mismo error
mire.
aaa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 08/03/2017 16:48:45
Ya vi el error, ninguna ded las funciones SUM cierra el paréntesis. Disculpa, yo encribí al vuelo y no ohe probado el código, ya que no tengo la tabla de la base de datos.

Aquí te pongo el código de nuevo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SET ENGINEBEHAVIOR 70
 
SELECT crazonso01,;
	SUM(IIF(MONTH(cfecha) = 1,cneto,0)) AS 'ENERO',;
	SUM(IIF(MONTH(cfecha) = 2,cneto,0)) AS 'FEBRERO',;
	SUM(IIF(MONTH(cfecha) = 3,cneto,0)) AS 'MARZO',;
	SUM(IIF(MONTH(cfecha) = 4,cneto,0)) AS 'ABRIL',;
	SUM(IIF(MONTH(cfecha) = 5,cneto,0)) AS 'MAYO',;
	SUM(IIF(MONTH(cfecha) = 6,cneto,0)) AS 'JUNIO',;
	SUM(IIF(MONTH(cfecha) = 7,cneto,0)) AS 'JULIO',;
	SUM(IIF(MONTH(cfecha) = 8,cneto,0)) AS 'AGOSTO',;
	SUM(IIF(MONTH(cfecha) = 9,cneto,0)) AS 'SEPTIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 10,cneto,0)) AS 'OCTUBRE',;
	SUM(IIF(MONTH(cfecha) = 11,cneto,0)) AS 'NOVIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 12,cneto,0)) AS 'DICIEMBRE ';
FROM MGW10008 ;
GROUP BY crazonso01 ;
ORDER BY crazonso01
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 08/03/2017 17:04:33
no discúlpame a mi por el tiempo que dedicaste en mi y al seguimiento de verdad te estoy muy agradecido :D
si funciono :D


aaa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 08/03/2017 17:21:33
a1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consultar por nombre de mes una fecha visual foxpro

Publicado por José M. Ferrer A. (31 intervenciones) el 08/03/2017 19:34:09
Me alegro que te funcionara. Lo otro que debes tener presente es que la tabla tiene registros eliminados o marcados para ser borrados, si no deseas que la consulta tome estos registros, debes filtrarlos.

1ra. Opción
Setear el filtro a nivel de todas las tablas a traves de:

SET DELETED ON

2da. Opción
Filtrar a nivel de la instrucción SQL utilizando en el WHERE después del FROM. la Función DELETED(). Ej.:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT crazonso01,;
	SUM(IIF(MONTH(cfecha) = 1,cneto,0)) AS 'ENERO',;
	SUM(IIF(MONTH(cfecha) = 2,cneto,0)) AS 'FEBRERO',;
	SUM(IIF(MONTH(cfecha) = 3,cneto,0)) AS 'MARZO',;
	SUM(IIF(MONTH(cfecha) = 4,cneto,0)) AS 'ABRIL',;
	SUM(IIF(MONTH(cfecha) = 5,cneto,0)) AS 'MAYO',;
	SUM(IIF(MONTH(cfecha) = 6,cneto,0)) AS 'JUNIO',;
	SUM(IIF(MONTH(cfecha) = 7,cneto,0)) AS 'JULIO',;
	SUM(IIF(MONTH(cfecha) = 8,cneto,0)) AS 'AGOSTO',;
	SUM(IIF(MONTH(cfecha) = 9,cneto,0)) AS 'SEPTIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 10,cneto,0)) AS 'OCTUBRE',;
	SUM(IIF(MONTH(cfecha) = 11,cneto,0)) AS 'NOVIEMBRE',;
	SUM(IIF(MONTH(cfecha) = 12,cneto,0)) AS 'DICIEMBRE ';
FROM MGW10008 ;
WHERE NOT DELETED() ;
GROUP BY crazonso01 ;
ORDER BY crazonso01

Estamos a tu orden.

Que estés bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de ezreal
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

consultar por nombre de mes una fecha visual foxpro

Publicado por ezreal (13 intervenciones) el 08/03/2017 19:57:08
muchas gracias :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar