SQL - Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

   
Vista:

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 14/01/2013 23:00:42
Hola, espero me puedan ayudar para sacar una consulta en SAP que no me está resultando, ya que necesito sacar un Informe en donde me muestra todos los artículos con la ultima cantidad comprada, así como también la última.

Esta Información la encuentro en la tabla de factura de proveedores OPCH que es la tabla cabecera donde se aloja la fecha y la PCH1 que es donde aloja el detalle de todos los artículos que componen la factura. Adicional a eso la tengo que unir a la tabla OITM que es donde se aloja todas las características de los artículos.

La salida que necesito es la siguiente

ITEMCODE Tabla OITM
ESTILO Tabla OITM
ULT_FECHA OPCH
ULT_CANT Tabla PCH1

Ejemplo de Datos

Tabla OPCH
DocEntry - DocDate
1 - 010113
2 - 030113
3 - 050113
4 - 122512
5 - 100113



Tabla PCH1
DocEntry - Line - DocDate - ItemCode - Quantity
1 - 1 - 122512 - Cod1 - 5
1 - 2 - 122512 - Cod1 - 5

2 - 1 - 030113 - Cod2 - 7
2 - 2 - 030113 - Cod2 - 13
2 - 3 - 030113 - Cod3 - 8

3 - 1 - 100113 - Cod4 - 10
3 - 2 - 100113 - Cod1 - 15

4 - 1 - 100112 - Cod5 - 20

5 - 1 - 050113 - Cod6 - 25
5 - 2 - 050113 - Cod6 - 10
5 - 3 - 050113 - Cod6 - 5

Tabla OITM
ItemCode - Estilo
Cod1 - Short
Cod2 - Sueter
Cod3 - Pantalon
Cod4 - Traje
Cod5 - Interior
Cod6 - Zapato

El Resultado de la consulta me debe arrojar lo siguiente:

ITEMCODE - ESTILO - ULT_CANT - ULT_FECHA
Cod1 - Short - 15 - 100113
Cod2 - Sueter - 20 - 030113
Cod3 - Pantalon - 8 - 030113
Cod4 - Traje - 10 - 100113
Cod5 - Interior - 20 - 100112
Cod6 - Zapato - 40 - 050113

Quien me puede ayudar ya que he intentado hacerlo con el Max pero me trae el artículo no agrupado.

SELECT T0.[ItemCode], T0.[U_referencia], T1.[Quantity], max(T2.[DocDate])

FROM OITM T0 INNER JOIN PCH1 T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OPCH T2 ON T1.DocEntry = T2.DocEntry

Group By T0.[ItemCode], T0.[U_referencia], T0.[U_Pattern], T0.[ItemName], T0.[U_color], T1.[Quantity]

Con este Query me esta trayendo (Solo pondré el ejemplo con el código 1 para que se vea claro lo que me pasa)
ITEMCODE - ESTILO - ULT_CANT - ULT_FECHA
Cod1 - Short - 15 - 100113
Cod1 - Short - 5 - 122512

Ahora bien si sumo las cantidades me trae
ITEMCODE - ESTILO - ULT_CANT - ULT_FECHA
Cod1 - Short - 25 - 100113

O sea que si me trae la ultima fecha pero me suma todas las cantidades que tenga ese artículo.Espero me puedan ayudar por favor.
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
Imágen de perfil de Isaias

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por Isaias (690 intervenciones) el 15/01/2013 00:56:44
Lo lei detenidamente 2 veces y no me queda claro.

¿Como sabes la ULTIMA FECHA de compra?

En la tabla:

Tabla OPCH
DocEntry - DocDate

5 - 100113
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por Fer (17 intervenciones) el 15/01/2013 01:00:19
Porque es la fecha de la factura de compra. Estos son datos que ya son proporcionados por la misma compra
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 15/01/2013 15:15:46
Hola Isaías, lo que pasa es que SAP maneja siempre tablas de encabezados de documentos y tabla de detalle de documento. En los encabezados tabla PCH1 se manejan los datos generales de las facturas como nombres de proveedor, codigo, dirección, fechas, etc. Y en los detalles se maneja la parte de artículos que se están comprando como precio, cantidad, descuentos por línea, y cada línea también aloja el campo DocDate que es la fecha de contabilización, misma fecha que provee el campo DocDate de la tabla OPCH.

Cualquier cosa me avisas.

Gracias por tu atención.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por emerson Palacios (11 intervenciones) el 15/01/2013 16:08:43
En las Bases de Datos de sistemas de facturacion desde siempre he visto el esquema Cabecera - detalle asi que no es una particularidad del SAP . Tengo 1 inquietud dice que quieres mostrar los datos agrupados x producto de la ultima factura emitida no se si tu sistema permitira agregar varias veces un producto a una factura si es asi nohabria problema de lo contrario no se podria agrupar pues todos los codigos serian unicos. creo que este select te puede servir


SELECT T0.[ItemCode], T0.[U_referencia], T1.[Quantity], T2.[DocDate]
FROM OPCH T1 INNER JOIN PCH1 T2 ON T1.DocEntry = T2.DocEntry INNER OITM T3 ON
T3.ITEMCODE=T2.ITEMCODE
WHERE T1.DocEntry=(Select top 1 DocEntry from opch order by docdate desc)

opcional seria tu group by -- Group By T0.[ItemCode], T0.[U_referencia], T0.[U_Pattern], T0.[ItemName], T0.[U_color], T1.[Quantity]

espero te sirva.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 15/01/2013 16:25:55
Hola, si se permite agregar varias veces en una factura el mismo artículo.

Realmente yo lo que deseo es un informe de todos los artpiculos que tengo en la base de datos y que allí haya una columna que me diga cual fue la última fecha que compre y cual fue la cantidad comprada en esa última fecha. El query que me mandaste

SELECT T2.[ItemCode], T3.[U_referencia], T2.[Quantity], T1.[DocDate]
FROM OPCH T1 INNER JOIN PCH1 T2 ON T1.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON
T3.ITEMCODE=T2.ITEMCODE
WHERE T1.DocEntry=(Select top 1 DocEntry from opch order by docdate desc)

No me trae ninguna información de la base de datos.

Necesito que me traiga la ultima fecha comprada y como existe el caso de que puedo en una misma factura de compra tener varias veces el mismo artículo por ello debo sumar las cantidades del artículo de esa última compra.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 15/01/2013 16:37:46
SELECT T2.[ItemCode], T3.[U_referencia], sum(T2.[Quantity]), T1.[DocDate]
FROM OPCH T1 INNER JOIN PCH1 T2 ON T1.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON
T3.ITEMCODE=T2.ITEMCODE
WHERE T1.DocEntry=(Select top 1 DocEntry from opch Where DocType='I' order by docdate desc)
Group By T2.[ItemCode], T3.[U_referencia], T1.[DocDate]

Ok le hice unas modificaciones a tu query porque en la OPCH aloja tanto servicios como Inventario, le puse el control del inventario, pero aun así no me funciona ya que solo me trae los 12 artículos agrupados de la ultima compra y no es lo que necesito, yo necesito que a mi informe de inventario en cada uno de los artículos el me ponga la ultima fecha que ese artículo se compro, así como también la cantidad que se compró en esa última compra. No me puedo enfocar solo en la última factura, sino en todo mi maestro de inventario y que a mi maestro de inventario en una columna me traiga la cantidad de la ultima compra (sumadas las cantidades, ya que se da el caso que en una factura haya mismos artículos varias veces por efecto que los precios de compra pueden ser diferentes) y la fecha de esa ultima compra.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por emerson Palacios Emerson_palacios@hotmail.com (11 intervenciones) el 17/01/2013 01:00:01
Hola mira la consulta que pides no es sencilla he hecho consultas parecidas para hacerla justo como la quieres necesito la bd y tiempo para probar.

De todos modos te digo en "teoria" como podrias hacerla
- primero tienes que hacer un select que te devuelva todos los productos con la fecha de su ultima compra debes agrupar el producto para que te salga una fecha por cada producto la consulta seria algo asi lo pongo rapido por que no tengo muchp tiempo creo que sera entendible -- Select codigopro,max(fecha) from detalle producto group by codigo creo que la fecha la tienes en otra tabla de ser asi debes hacer su respectivo join.

-lo segundo que debes hacer es a toda esta consulta ponerle un alias (al ponerle como alias ya puedes tratarlo como si fuera una tabla en memoria) ahora tienes que hacer otro select que te devuelva el detalle de las compras y hacer un join con el resultado del select anterior en la parte del on le pondrias que codigopro de nueva consulta sea igual que codigo pro de consulta anterior y nueva fecha igual que fecha consulta anterior agrupalos por codigo esto ya te devuelve todos los productos con sus cantidades acumuladas en la ultima fecha debes hacer un sum(cantidad) combinado con el group by acumula todo

como ultimo paso toda esta gran consultotaaaaa poner como alias de nuevo y hacer join con la tabla de los anteriores resultados. aunque esto podrias añadirle a la primera consulta cosa que no complicas tanto. espero me hayas entendido. vi una consulta tuya mas o menos parecida a esta por aca mismo tomando esta idea la podrias resolver.

si lo encuentas muy complicado mas facil podrias crear un procedure, function con la misma logica tu primer cursor tendria que levantar los productos con su maxima fecha
de ahi recorres uno por uno y en cada pasada buscas los resultados de cada producto con su fecha aca puedes unirlo con productos todo esto lo podrias insertar en una tabla temporal en caso de que hagas un procedure o en su defecto a una variable table que lo puedes retornar de una funcion.


bueno amigo espero te sirva cualquier cosa tienes mi correo ahi. hablamosss
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por Fer (17 intervenciones) el 17/01/2013 01:06:45
No entendi. No podrias hacerloo con las variables de la tabla arriba, en serio que no entendi.

Disculpa.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por emerson Palacios Emerson_palacios@hotmail.com (11 intervenciones) el 17/01/2013 04:12:42
AGREGAME AL CORREO PARA HABLAR
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 17/01/2013 17:24:20
Ya te agregue a mi msn de hotmail, y soy amiga, la invitación irá de yamy

Saludos
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 18/01/2013 15:58:14
Hola, me salen errores, creo que es mas que nada sintaxis. Me puedes dar un ejemplo de sintaxis para hacer bien los paréntesis y conexiones de un select con otro poniendo los select con alias?
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 18/01/2013 17:11:43
La verdad necesito de tu ayuda.

Por lo pronto me estoy embolatando con la consulta, se que son problemas de sitaxis pero necesito me puedas ayudar please.

(Select T0.[ItemCode], max(T0.[DocDate]) FROM
PCH1 T0 GROUP BY T0.[ItemCode]) T00 FROM
(Select T1.[ItemCode], sum(T1.[Quantity]), T1.[DocDate] from PCH1 T1 INNER JOIN PCH1 T0 ON
(T1.[ItemCode] = T0.[ItemCode]) and (T1.[DocDate] = T0.[DocDate])
GROUP BY T1.[ItemCode], T1.[DocDate])

Ya de aqui no se que mas porque me está mandando error en varias cosas.

Espero me puedas ayudar por favor.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 18/01/2013 22:17:05
SELECT X2.ItemCode, SUM(X2.Quantity), X2.DocDate
FROM
(SELECT T1.ItemCode, MAX(T1.DocDate)AS 'ULT_FECHA'
FROM [EUFA].dbo.PCH1 T1
GROUP BY T1.ItemCode) X0
INNER JOIN
(SELECT T0.ItemCode, SUM(T0.Quantity), T0.DocDate
FROM [EUFA].dbo.PCH1 T0
GROUP BY T0.ItemCode, T0.DocDate) X1
ON (X1.ItemCode= X0.ItemCode)and (X1.DocDate=X0.DocDate)) X2
GROUP BY X2.ItemCode, X2.DocDate

Esta es la consulta pero me manda error, la verdad que ya no doy mas, en la X0 si la ejecuto sola m sale bien todos los artículos con la ultima fecha que compro, en la segunda si la ejecuto sola me sale todas las cantidades agrupadas por artículos y fechas compradas, la vainilla es la conexión de ambas tablas, no se que pasa pero me está mandando errores.


Espero me puedas ayudar.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por Hola (11 intervenciones) el 19/01/2013 05:32:49
Aca estoy de Nuevo estuve muy ocupado con chamba asi que me disculpas por la tardanza.

A ver el primer select me aprece que seria algo asi. (no se si en la tabla de detalle de compras tienes las fecha) si es asi tu select ( SELECT T1.ItemCode, MAX(T1.DocDate)AS 'ULT_FECHA'
FROM [EUFA].dbo.PCH1 T1 GROUP BY T1.ItemCode) X0 ) seria correcto. de lo contrario esta seria la consulta correcta. select itemcode,max(docdate) from opch1 o inner join pch1 p on o.docentry=p.docentry group by itemcode este seria el select que nos daria los codigos de producto y su maxima fecha.

El Segundo select seria mas o menos asi. -- select itemcode,quantity,docdate from opch1 o inner join pch1 p on o.docentry=p.docentry --- > con esto sacas el listado de todos los productos comprados. entonces para cojer la interseccion de estos 2 grupos se hace la consulta siguiente


select j.itemcode,j.docdate,sum(quantity) from (select itemcode,quantity,docdate from opch1 o inner join pch1 p on o.docentry=p.docentry) J
inner join (select itemcode,max(docdate) as docdate from opch1 o inner join pch1 p on o.docentry=p.docentry group by itemcode) k
on j.itemcode=k.itemcode and j.docdate=k.docdate group by j.itemcode,j.docdate

aca ya tienes los productos agrupados en su ultima fecha de compraaa

ahora a esto hay que hacer el join con la tabla productos

select l.itemcode,o.estilo,l.ult_cant,l.docdate from (select j.itemcode,j.docdate,sum(quantity) ult_cant from (select itemcode,quantity,docdate from opch1 o inner join pch1 p on o.docentry=p.docentry) J
inner join (select itemcode,max(docdate) as docdate from opch1 o inner join pch1 p on o.docentry=p.docentry group by itemcode) k
on j.itemcode=k.itemcode and j.docdate=k.docdate group by j.itemcode,j.docdate) l inner join oitm o on l.itemcode=o.itemcode


ahora si creo que con eso te deberia salir ........ pero me acabo de dar cuenta de algo con este select te saldran los productos agrupados en su ultima fecha de compra pero si te das cuenta si en ultimo dia de compro hubo varias compras de ese productos todas te las va a juntar
a menos que tu docdate este como datetime ahi si te mandara la ultima ultima si no tendias que hacer otro filtro ya lo depuras. eso es todo amigo. Saludosss. si necsitas algo mas me avisas.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 21/01/2013 15:35:09
Hola, mira con lo que me mandaste que realmente tiene toda la lógica del mundo me está mandando error en el alias de la segunda tabla en memoria k, no se porque pero no me deja validar el alias después del Inner Join.

USE EUFA
select j.itemcode, j.docdate, sum(j.Quantity)
from (select itemcode, quantity, docdate from PCH1) j
inner join (select P.ItemCode, max(O.DocDate)
from OPCH O Inner Join PCH1 P on O.docentry = P.docentry Group by P.itemcode) k
on j.ItemCode = k.ItemCode and j.docdate = k.docdate
Group by j.itemcode, j.docdate

Me está mandando este error
Msg 8155, Level 16, State 2, Line 6
No column name was specified for column 2 of 'k'.
Msg 207, Level 16, State 1, Line 6
Invalid column name 'docdate'.

Estoy tratando primero de sacar los productos agrupados por la última fecha para despues conectarla con la OITM para sacarle las otras características, pero no me ha dejado hacer la consulta directamente desde sql, usando el sa.

Espero puedas saber que pasa.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por Emerson Palacios Meza (11 intervenciones) el 21/01/2013 20:06:17
Esta claro que el error es por que no puse el Alias a max(O.docdate) ponle docdate y con eso creo que bastara. quedaria asi

select j.itemcode, j.docdate, sum(j.Quantity)
from (select itemcode, quantity, docdate from PCH1) j
inner join (select P.ItemCode, max(O.DocDate) DocDate
from OPCH O Inner Join PCH1 P on O.docentry = P.docentry Group by P.itemcode) k
on j.ItemCode = k.ItemCode and j.docdate = k.docdate
Group by j.itemcode, j.docdate

Por tu Correo que agregue creo que eres de Panama tengo intenciones de viajar por alla no se puedes orientarme un poco sobre el pais. de veras te lo agradeceria.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 21/01/2013 20:12:33
Si, soy de Panamá y claro que estoy a tu entera disposición, si es eso, ya me había fijado pero no lo había respondido y la verdad si sale, pero ahorita tengo un gran problema que hay algunas compras que están en otra tabla de entrada de mercancía, ya que revisando tengo una diferencia de 262 artículos que pasaron por otra tabla primero antes de entrar a la tabla de las compras que es la PDN1, esta no tiene conexión con la tabla de compras ya que intente conectarlas pero no me salen, hay alguna forma de que pueda hacer alguna union de el resultado que me arroja el query ya hecho con otro que me traiga la sumatoria de la PDN1? en teoría sería el mismo formato del anterior solo que en vez de OPCH es OPDN y en vez de PCH1 es PDN1.

Gracias por tu ayuda.
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (17 intervenciones) el 21/01/2013 20:30:39
Ya ahora si resolví, tenía que quitarle el Inner con la OPCH, solo dejar a la PCH1 para que me trajera las fechas de detalle porque me estaba creando conflicto con las facturas de servicios.

Muchísimas gracias, y ya sabes cuando vengas a Panamá pues solo contácteme y te pongo al tanto de lo que necesites, también creo que me estabas ayudando en el otro caso que tengo del mismo reporte con periodos distintos, el del comparativo de los artículos.

Me avisas

Saludos
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por Emerson Palacios Meza (11 intervenciones) el 21/01/2013 22:20:22
Hola, me alegra que te haya servido. mira ahora estoy de salida del trabajo y no tengo internet en la casa por que me acabo de mudar. mañana veo tu otra consulta ahi te ayudo. nos vemosss
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

Ayuda para Sacar Cantidades Agrupadas de la ultima Compra con su Ultima Fecha

Publicado por FER (1 intervención) el 21/01/2013 22:38:11
Haaaa ok, bueno yo estare en mi oficina, yo te agregue al msn de hotmail asi que estamos en contacto.

Gracias.
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