Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

creacion de una vista para KARDEX por productos o fechas

Estas en el tema de creacion de una vista para KARDEX por productos o fechas en el foro de Mysql en Foros del Web. Buenos estimados gracias por leer mi duda, tengo una duda con respecto a la creacion de una vista para kardex. le adjunto el Link de ...
  #1 (permalink)  
Antiguo 23/01/2014, 20:24
 
Fecha de Ingreso: septiembre-2013
Ubicación: Ecuador
Mensajes: 18
Antigüedad: 10 años, 7 meses
Puntos: 0
creacion de una vista para KARDEX por productos o fechas

Buenos estimados gracias por leer mi duda,

tengo una duda con respecto a la creacion de una vista para kardex.

le adjunto el Link de la imagen es la base de datos que utilizo.

[URL="http://sdrv.ms/1atYmPX"]http://sdrv.ms/1atYmPX[/URL]

lo que yo nesesito es crear un kardex por producto o filtrados por fecha.

tanto entradas como salidas me tienen que salir con sus respectivo movimiento y saldo.

la cuestion es que estoy intentando con este script para sacar el kardex pero por mas que e tratado de hacer algo. no me da la cabeza.

Código:
with tabla as
(Select tr.fecha_salida Fecha, sum (tds.cantidad) Salida, null Entrada
from tesis.articuls ta
        inner join tesis.salidas_detalle tds ON ta.ID = tds.id_articulo
        inner join tesis.salidas tr ON tds.id_articulo = tr.id_salida
Where ta.ID = 8
group by tr.fecha_salida

union

Select te.fecha_entrada , null, SUM (ted.cantidad)
from tesis.articulos ta
        inner join tesis.entradas_detalle ted ON ta.ID = ted.id_articulo
        inner join  tesis.entradas te ON te.id_entrada = ted.id_entrada
Where ta.ID = 8
group by te.fecha_entrada)

Select Fecha, isnull(SUM(salida),0) as Salida, isnull(SUM (Entrada),0) as Entrada, ISNULL(SUM(Entrada),0) - isnull(SUM(salida),0) Movimiento
from tabla
group by Fecha
[URL=http://sdrv.ms/1atYmPX[/URL]

al ejecutarlo me sale este error

syntax to use near 'tabla as (Select tr.fecha_salida Fecha, sum (tds.cantidad) Salida, null Entrada' at line 1


agradeceria mucho a la persona que me ayude con esto.

Última edición por alex_87; 23/01/2014 a las 20:31
  #2 (permalink)  
Antiguo 24/01/2014, 02:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: creacion de una vista para KARDEX por productos o fechas

Alex_87, he quitado y puesto algún paréntesis, pero uno de los principales fallos es que en la primera consulta de unión hay menos campos que en la segunda. Deben ser los mismos y del mismo tipo según el orden. Además, si añades alias, basta con ponerlos en el primer select y tú no los has puesto en el primero sino en el segundo. Revisa eso. Por otra parte, vendría bien que explicaras qué quieres obtener exactamente con esa consulta de unión
Código MySQL:
Ver original
  1. (Select te.fecha_entrada, null salida, SUM (ted.cantidad) entrada, faltamovimiento
  2. from tesis.articulos ta
  3.         inner join tesis.entradas_detalle ted ON ta.ID = ted.id_articulo
  4.         inner join  tesis.entradas te ON te.id_entrada = ted.id_entrada
  5. Where ta.ID = 8
  6. group by te.fecha_entrada)
  7. (Select Fecha, isnull(SUM(salida),0) Salida, isnull(SUM (Entrada),0) Entrada, ISNULL(SUM(Entrada),0) -  isnull(SUM(salida),0)[B])[/B] Movimiento
  8. from tabla)
  9. group by Fecha

Deberías explicar un poco la naturaleza y función de tus datos, y luego de acuerdo con ello revisaremos la consulta.
  #3 (permalink)  
Antiguo 24/01/2014, 17:18
 
Fecha de Ingreso: septiembre-2013
Ubicación: Ecuador
Mensajes: 18
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: creacion de una vista para KARDEX por productos o fechas

Cita:
Iniciado por jurena Ver Mensaje
Alex_87, he quitado y puesto algún paréntesis, pero uno de los principales fallos es que en la primera consulta de unión hay menos campos que en la segunda. Deben ser los mismos y del mismo tipo según el orden. Además, si añades alias, basta con ponerlos en el primer select y tú no los has puesto en el primero sino en el segundo. Revisa eso. Por otra parte, vendría bien que explicaras qué quieres obtener exactamente con esa consulta de unión
Código MySQL:
Ver original
  1. (Select te.fecha_entrada, null salida, SUM (ted.cantidad) entrada, faltamovimiento
  2. from tesis.articulos ta
  3.         inner join tesis.entradas_detalle ted ON ta.ID = ted.id_articulo
  4.         inner join  tesis.entradas te ON te.id_entrada = ted.id_entrada
  5. Where ta.ID = 8
  6. group by te.fecha_entrada)
  7. (Select Fecha, isnull(SUM(salida),0) Salida, isnull(SUM (Entrada),0) Entrada, ISNULL(SUM(Entrada),0) -  isnull(SUM(salida),0)[B])[/B] Movimiento
  8. from tabla)
  9. group by Fecha

Deberías explicar un poco la naturaleza y función de tus datos, y luego de acuerdo con ello revisaremos la consulta.


Hola Jurena gracias por tu colaboracion y el tiempo dedicado, lo que yo quiero y estoy intentado hacer es llevar los movimientos de entradas y salidas de los productos.
y obtener el idproducto que mayor movimiento obtuvo en un rango de fecha.

por ejemplo

fecha - entrante - saliente - saldo idproducto

1-1-2012 - 10 - 0 - 10 1

2-1-2012 - 0 - 2 - 8 1

3-1-2012 - 20 - 0 - 28 2

4-1-2012 - 0 - 10 - 18 2

5-1-2012 - 0 - 15 - 3 2

te explico un poco, tendria que sumar las entrada en ese dia para es producto, sumar las salidas para ese producto y por ultimo restar las entradas con las salidas y agruparlos por el campo fecha, pero no logro que me muestre el resultado ya que no tengo mucha practica con mysql.
Espero me puedas brindar tu ayuda.
  #4 (permalink)  
Antiguo 25/01/2014, 02:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: creacion de una vista para KARDEX por productos o fechas

Un ejemplo para que te sirva de orientación. Busco entre dos fechas concretas, claro. Espero que el campo de fecha sea de tipo TIME. Si no lo es y es VARCHAR, tarde o temprano tendrás un grave problema y deberías resolverlo pronto. Eso sí, si tienes muchos datos, habrá que hacerlo con cuidado para que no pierdas nada.
Código MySQL:
Ver original
  1.   fecha,
  2.   SUM(entrante) entrantes,
  3.   SUM(saliente) salientes,
  4.  (SUM(entrante) - SUM(saliente)) saldo,
  5.   id_producto
  6. FROM tutabla
  7.  WHERE fecha BETWEEN '2012-01-23' AND '2013-04-30'
  8.  GROUP BY id_producto

Etiquetas: join, null, productos, select, tabla, vista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:15.