Consulta de suma de un campo en access
Tengo una tabla más o menos así:
Fecha - código - cantidad - tipo
Tipo solo vale 1 o 2, según sea compra o venta
quería saber si se puede hacer una consulta donde me de como resultado
código - compra - venta, para un determinado periodo de fecha.-
Fecha - código - cantidad - tipo
Tipo solo vale 1 o 2, según sea compra o venta
quería saber si se puede hacer una consulta donde me de como resultado
código - compra - venta, para un determinado periodo de fecha.-
1 respuesta
Respuesta de dayvitt
1
1
dayvitt, Soy: Programador-analista de aplicaciones en Lenguaje C...
Creo que quieres esto:
SELECT <nombre_tabla>.codigo, <nombre_tabla>.cantidad, <nombre_tabla>.tipo
FROM <nombre_tabla>
WHERE (((<nombre_tabla>.fecha)=<Fecha_a_buscar>));
SELECT <nombre_tabla>.codigo, <nombre_tabla>.cantidad, <nombre_tabla>.tipo
FROM <nombre_tabla>
WHERE (((<nombre_tabla>.fecha)=<Fecha_a_buscar>));
Pero yo quiero saber la suma de las compras(tipo=1) y la suma de las ventas(tipo=2); o sea que me de como resultado ej.:
Código-compra-venta
1 - 12 - 6
24 - 10 - 2
Etc.
Gracias por preocuparte.-
Código-compra-venta
1 - 12 - 6
24 - 10 - 2
Etc.
Gracias por preocuparte.-
Ok,
Creo que entonces necesitas una tabla de referencias cruzadas
TRANSFORM Count(<nombre_tabla>.cantidad) AS CuentaDecantidad
SELECT <nombre_tabla>.tipo, <nombre_tabla>.fecha, Count(<nombre_tabla>.cantidad) AS [Total de cantidad]
FROM <nombre_tabla>
WHERE (((<nombre_tabla>.fecha)=<Fecha_a_buscar>))
GROUP BY <nombre_tabla>.tipo, <nombre_tabla>.fecha
PIVOT <nombre_tabla>.codigo;
Creo que entonces necesitas una tabla de referencias cruzadas
TRANSFORM Count(<nombre_tabla>.cantidad) AS CuentaDecantidad
SELECT <nombre_tabla>.tipo, <nombre_tabla>.fecha, Count(<nombre_tabla>.cantidad) AS [Total de cantidad]
FROM <nombre_tabla>
WHERE (((<nombre_tabla>.fecha)=<Fecha_a_buscar>))
GROUP BY <nombre_tabla>.tipo, <nombre_tabla>.fecha
PIVOT <nombre_tabla>.codigo;
Va bastante rumbeado, el resultado que tuve es el siguiente:
Campos de la consulta
Consulta1 tipo fechadoc Total de cantidad 1683 1714 3023 3082 3131 3135 3263 3287 3425 3993 4174 4254 4671 5169 5707 5910 6690 7017 7033 7173 8109 8317 8448 8526 9643 9903 9960 11002 11003 11004 11008 22141 77001 77057 77206 77290 77309 77365 77367
resultado renglón 1:1 20/02/2010 6
20 10
2 10
10
20
renglon2:
31 20/02/2010 37 -1 -1 -7 -2 -1 -1 -2 -3 -2 -3 -3 -5 -1 -4
-2
-1 -3 -2 -1 -1 -1 -3 -1 -3 -2 -1271 -1109 -31 -166 -6 -2550 -1 -1 -5 -2 -2 -2
yo le cambie TRANSFORM Sum(stockmov.cantidad) AS CuentaDecantidad
SELECT stockmov.tipo, stockmov.fechadoc, Count(stockmov.cantidad) AS [Total de cantidad]
FROM stockmov
WHERE (((stockmov.fechadoc)=#02/20/2010#))
GROUP BY stockmov.tipo, stockmov.fechadoc
PIVOT stockmov.articulo;
estos son los datos:
StockMov Registro Documento Articulo FechaDoc Cantidad Precio Importe Iva Acreedor Tipo Aplicación Contabilidad
41913 770639 1683 20/02/2010 -1
31
20/02/2010 41914 770639 1714 20/02/2010 -1
31
20/02/2010 41915 770639 3023 20/02/2010 -7
31
20/02/2010 41916 770639 3082 20/02/2010 -2
31
20/02/2010 41917 770639 3131 20/02/2010 -1
31
20/02/2010 41918 770639 3135 20/02/2010 -1
31
20/02/2010 41919 770639 3263 20/02/2010 -2
31
20/02/2010 41920 770639 3287 20/02/2010 -3
31
20/02/2010 41921 770639 3425 20/02/2010 -2
31
20/02/2010 41922 770639 3993 20/02/2010 -3
31
20/02/2010 41923 770639 4174 20/02/2010 -3
31
20/02/2010 41924 770639 4254 20/02/2010 -5
31
20/02/2010 41925 770639 4671 20/02/2010 -1
31
20/02/2010 41926 770639 5169 20/02/2010 -4
31
20/02/2010 41927 770639 5910 20/02/2010 -2
31
20/02/2010 41928 770639 7017 20/02/2010 -1
31
20/02/2010 41929 770639 7033 20/02/2010 -3
31
20/02/2010 41930 770639 7173 20/02/2010 -2
31
20/02/2010 41931 770639 8109 20/02/2010 -1
31
20/02/2010 41932 770639 8317 20/02/2010 -1
31
20/02/2010 41933 770639 8448 20/02/2010 -1
31
20/02/2010 41934 770639 8526 20/02/2010 -3
31
20/02/2010 41935 770639 9643 20/02/2010 -1
31
20/02/2010 41936 770639 9903 20/02/2010 -3
31
20/02/2010 41937 770639 9960 20/02/2010 -2
31
20/02/2010 41938 770639 11002 20/02/2010 -1271
31
20/02/2010 41939 770639 11003 20/02/2010 -1109
31
20/02/2010 41940 770639 11004 20/02/2010 -31
31
20/02/2010 41941 770639 11008 20/02/2010 -166
31
20/02/2010 41942 770639 22141 20/02/2010 -6
31
20/02/2010 41943 770639 77001 20/02/2010 -2550
31
20/02/2010 41944 770639 77057 20/02/2010 -1
31
20/02/2010 41945 770639 77206 20/02/2010 -1
31
20/02/2010 41946 770639 77290 20/02/2010 -5
31
20/02/2010 41947 770639 77309 20/02/2010 -2
31
20/02/2010 41948 770639 77365 20/02/2010 -2
31
20/02/2010 41949 770639 77367 20/02/2010 -2
31
20/02/2010 42411 65591 3263 20/02/2010 10 47.54 475.41 Z 980 1
23/02/2010 42412 65591 3082 20/02/2010 10 34.43 344.26 Z 980 1
23/02/2010 42413 65591 3023 20/02/2010 20 47.54 950.82 Z 980 1
23/02/2010 42414 65591 6690 20/02/2010 20 40.98 819.67 Z 980 1
23/02/2010 42415 65591 5707 20/02/2010 10 34.43 344.26 Z 980 1
23/02/2010 42416 65712 3135 20/02/2010 2 104.1 208.2 Z 980 1
23/02/2010
La verdad no queda muy claro con el pegado, pero me creó un campo para cada articulo y 2 renglones, uno con la compra(1) y otro con la venta(31).-
Gracias
Campos de la consulta
Consulta1 tipo fechadoc Total de cantidad 1683 1714 3023 3082 3131 3135 3263 3287 3425 3993 4174 4254 4671 5169 5707 5910 6690 7017 7033 7173 8109 8317 8448 8526 9643 9903 9960 11002 11003 11004 11008 22141 77001 77057 77206 77290 77309 77365 77367
resultado renglón 1:1 20/02/2010 6
20 10
2 10
10
20
renglon2:
31 20/02/2010 37 -1 -1 -7 -2 -1 -1 -2 -3 -2 -3 -3 -5 -1 -4
-2
-1 -3 -2 -1 -1 -1 -3 -1 -3 -2 -1271 -1109 -31 -166 -6 -2550 -1 -1 -5 -2 -2 -2
yo le cambie TRANSFORM Sum(stockmov.cantidad) AS CuentaDecantidad
SELECT stockmov.tipo, stockmov.fechadoc, Count(stockmov.cantidad) AS [Total de cantidad]
FROM stockmov
WHERE (((stockmov.fechadoc)=#02/20/2010#))
GROUP BY stockmov.tipo, stockmov.fechadoc
PIVOT stockmov.articulo;
estos son los datos:
StockMov Registro Documento Articulo FechaDoc Cantidad Precio Importe Iva Acreedor Tipo Aplicación Contabilidad
41913 770639 1683 20/02/2010 -1
31
20/02/2010 41914 770639 1714 20/02/2010 -1
31
20/02/2010 41915 770639 3023 20/02/2010 -7
31
20/02/2010 41916 770639 3082 20/02/2010 -2
31
20/02/2010 41917 770639 3131 20/02/2010 -1
31
20/02/2010 41918 770639 3135 20/02/2010 -1
31
20/02/2010 41919 770639 3263 20/02/2010 -2
31
20/02/2010 41920 770639 3287 20/02/2010 -3
31
20/02/2010 41921 770639 3425 20/02/2010 -2
31
20/02/2010 41922 770639 3993 20/02/2010 -3
31
20/02/2010 41923 770639 4174 20/02/2010 -3
31
20/02/2010 41924 770639 4254 20/02/2010 -5
31
20/02/2010 41925 770639 4671 20/02/2010 -1
31
20/02/2010 41926 770639 5169 20/02/2010 -4
31
20/02/2010 41927 770639 5910 20/02/2010 -2
31
20/02/2010 41928 770639 7017 20/02/2010 -1
31
20/02/2010 41929 770639 7033 20/02/2010 -3
31
20/02/2010 41930 770639 7173 20/02/2010 -2
31
20/02/2010 41931 770639 8109 20/02/2010 -1
31
20/02/2010 41932 770639 8317 20/02/2010 -1
31
20/02/2010 41933 770639 8448 20/02/2010 -1
31
20/02/2010 41934 770639 8526 20/02/2010 -3
31
20/02/2010 41935 770639 9643 20/02/2010 -1
31
20/02/2010 41936 770639 9903 20/02/2010 -3
31
20/02/2010 41937 770639 9960 20/02/2010 -2
31
20/02/2010 41938 770639 11002 20/02/2010 -1271
31
20/02/2010 41939 770639 11003 20/02/2010 -1109
31
20/02/2010 41940 770639 11004 20/02/2010 -31
31
20/02/2010 41941 770639 11008 20/02/2010 -166
31
20/02/2010 41942 770639 22141 20/02/2010 -6
31
20/02/2010 41943 770639 77001 20/02/2010 -2550
31
20/02/2010 41944 770639 77057 20/02/2010 -1
31
20/02/2010 41945 770639 77206 20/02/2010 -1
31
20/02/2010 41946 770639 77290 20/02/2010 -5
31
20/02/2010 41947 770639 77309 20/02/2010 -2
31
20/02/2010 41948 770639 77365 20/02/2010 -2
31
20/02/2010 41949 770639 77367 20/02/2010 -2
31
20/02/2010 42411 65591 3263 20/02/2010 10 47.54 475.41 Z 980 1
23/02/2010 42412 65591 3082 20/02/2010 10 34.43 344.26 Z 980 1
23/02/2010 42413 65591 3023 20/02/2010 20 47.54 950.82 Z 980 1
23/02/2010 42414 65591 6690 20/02/2010 20 40.98 819.67 Z 980 1
23/02/2010 42415 65591 5707 20/02/2010 10 34.43 344.26 Z 980 1
23/02/2010 42416 65712 3135 20/02/2010 2 104.1 208.2 Z 980 1
23/02/2010
La verdad no queda muy claro con el pegado, pero me creó un campo para cada articulo y 2 renglones, uno con la compra(1) y otro con la venta(31).-
Gracias
Disculpá que siga insistiendo, pero en vez de que me cree un campo para cada código, como habría que hacer para que me cree registros. Gracias y perdoná mi ignorancia.-
A ver si me aclaro.
¿Tu necesitas una consulta con tres campos, donde el primero es el código, el segundo la fecha (con criterio determinado) y el tercero la suma de todos los importes con ese código y fecha?
¿Tu necesitas una consulta con tres campos, donde el primero es el código, el segundo la fecha (con criterio determinado) y el tercero la suma de todos los importes con ese código y fecha?
A ver si me explico mejor, necesito una consulta con 4 campos:
Fecha - Articulo - Venta - Compra
Lo que diferencia de cada registro de la tabla de movimientos es el tipo, donde tipo = 1 para las compras y 31 para las ventas.-
El archivo de movimientos tiene los siguientes campos:
(Documento- Articulo- FechaDoc- Cantidad- Precio- Importe- Iva- Acreedor- Tipo- Aplicación- Contabilidad)
Fecha - Articulo - Cantidad - tipo serían los que entran en juego
por ejemplo en un día puedo tener varios registro con el mismo articulo, los cuales diferencio las compras o ventas según el tipo. Ej:
Articulo - fechadoc - cantidad - tipo
1011 - 20/04/2010 - 6 - 31
1011 - 20/04/2010 - 2 - 31
1011 - 20/04/2010 - 24 - 1
1016 - 20/04/2010 - 12 - 1
1016 - 20/04/2010 - 6 - 1
Los dos primeros registros serian ventas y el resto compras
entonces el resultado de la consulta para el día 20/04/2010 sería
Fecha - Articulo - Venta - Compra
20/04/2010 - 1011- 8- 24
20/04/2010 - 1016- 0- 18
Y así sucesivamente por cada artículo con movimiento
Fecha - Articulo - Venta - Compra
Lo que diferencia de cada registro de la tabla de movimientos es el tipo, donde tipo = 1 para las compras y 31 para las ventas.-
El archivo de movimientos tiene los siguientes campos:
(Documento- Articulo- FechaDoc- Cantidad- Precio- Importe- Iva- Acreedor- Tipo- Aplicación- Contabilidad)
Fecha - Articulo - Cantidad - tipo serían los que entran en juego
por ejemplo en un día puedo tener varios registro con el mismo articulo, los cuales diferencio las compras o ventas según el tipo. Ej:
Articulo - fechadoc - cantidad - tipo
1011 - 20/04/2010 - 6 - 31
1011 - 20/04/2010 - 2 - 31
1011 - 20/04/2010 - 24 - 1
1016 - 20/04/2010 - 12 - 1
1016 - 20/04/2010 - 6 - 1
Los dos primeros registros serian ventas y el resto compras
entonces el resultado de la consulta para el día 20/04/2010 sería
Fecha - Articulo - Venta - Compra
20/04/2010 - 1011- 8- 24
20/04/2010 - 1016- 0- 18
Y así sucesivamente por cada artículo con movimiento
Es esto:
TRANSFORM Sum(stockmov.cantidad) AS SumaDecantidad
SELECT stockmov.fechadoc, stockmov.articulo, Sum(stockmov.cantidad) AS [Total de cantidad]
FROM stockmov
GROUP BY stockmov.fechadoc, stockmov.articulo
PIVOT stockmov.tipo;
Si quisieras ademas cambiar el nombre de las cabeceras de 1 a "Compra" y 31 a "Venta", tendrías que crear otra tabla a parte con 2 campos (Código y Acción) ahí añadimos dos registros 1 - Compra y 2 - Venta. Luego hacemos una relación de 1 a muchos entre Código de esta nueva tabla y tipo de la tabla stockmov.
Después creamos una consulta simple de stockmov. Fechadoc, stockmov. Articulo, stockmov. Cantidad y ademas ponemos en lugar de stockmov. Tipo, nuevatabla. Código
Finalmente tendríamos que hacer la tabla de referencias cruzadas sobre esa consulta.
TRANSFORM Sum(stockmov.cantidad) AS SumaDecantidad
SELECT stockmov.fechadoc, stockmov.articulo, Sum(stockmov.cantidad) AS [Total de cantidad]
FROM stockmov
GROUP BY stockmov.fechadoc, stockmov.articulo
PIVOT stockmov.tipo;
Si quisieras ademas cambiar el nombre de las cabeceras de 1 a "Compra" y 31 a "Venta", tendrías que crear otra tabla a parte con 2 campos (Código y Acción) ahí añadimos dos registros 1 - Compra y 2 - Venta. Luego hacemos una relación de 1 a muchos entre Código de esta nueva tabla y tipo de la tabla stockmov.
Después creamos una consulta simple de stockmov. Fechadoc, stockmov. Articulo, stockmov. Cantidad y ademas ponemos en lugar de stockmov. Tipo, nuevatabla. Código
Finalmente tendríamos que hacer la tabla de referencias cruzadas sobre esa consulta.
- Compartir respuesta
- Anónimo
ahora mismo