Ayuda SAP

Ventas total por Mes por Grupo de Cliente

Buenos tarde Ing Caldero recuro a usted nuevamente para que me pueda orientar en una nueva consulta que estoy realizando la misma es parecida a la ventas total por cliente por mes pero la que estoy realizando es ventas total por mes por Grupo de Cliente (GroupName) Utilizando la las tablas OINV, ORIN, OCRD Y OCRG. al momento de de correr la consulta me envía un error "Invalid Column Name CardCode’. deseo que me puedan orientar es este error ya que he buscado y no encuentro donde se esta presentando. A continuacion muestro la consulta modificada para que me muestre los totales por mes por grupo de cliente.

/* SELECT FROM [dbo].[OINV] T1 */                          
  DECLARE @fechainicio AS DATE                            
  /* WHERE */                                                
  SET @fechainicio = /* T1.DocDate */'[%1]'

/* SELECT FROM [dbo].[OINV] T2 */                          
  DECLARE @fechafin AS DATE                            
  /* WHERE */                                                
  SET @fechafin = /* T2.DocDate */'[%2]'

;WITH TR as
(
select * from
(
select T0G.GroupName, Month(T0.DocDate) as 'Mes', (T0.DocTotal-T0.Vatsum) as 'TotVta'
FROM OINV T0 
    INNER JOIN OCRD T0C on T0C.CardCode = T0.CardCode
    INNER JOIN OCRG T0G on T0G.GroupCode = T0C.GroupCode 
WHERE T0.CANCELED = 'N'  and T0.DocDate between @fechainicio and @fechafin
Union all
select T1G.GroupName, Month(T1.DocDate) as 'Mes', ((T1.DocTotal-T1.Vatsum)*-1) as 'TotVta'
FROM ORIN T1 
INNER JOIN OCRD T1C on T1C.CardCode = T1.CardCode 
INNER JOIN OCRG T1G on T1G.GroupCode = T1C.GroupCode 
WHERE T1.CANCELED = 'N'   and T1.DocDate between @fechainicio and @fechafin 
) as TP
PIVOT (SUM(TP.TotVta) FOR TP.Mes IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) pvrt

) 
select TG.GroupName, 
ISNULL([1],0) as 'Enero', ISNULL([2],0) as 'Febrero', ISNULL([3],0) as 'Marzo', ISNULL([4],0) as 'Abril',
ISNULL([5],0) as 'Mayo', ISNULL([6],0) as 'Junio', ISNULL([7],0) as 'Julio', ISNULL([8],0) as 'Agosto',
ISNULL([9],0) as 'Septiembre', ISNULL([10],0) as 'Octubre', ISNULL([11],0) as 'Noviembre', ISNULL([12],0) as 'Diciembre',
(ISNULL([1],0)+ISNULL([2],0)+ISNULL([3],0)+ISNULL([4],0)+ISNULL([5],0)+ISNULL([6],0)+
ISNULL([7],0)+ISNULL([8],0)+ISNULL([9],0)+ISNULL([10],0)+ISNULL([11],0)+ISNULL([12],0)) as 'Total'

from TR
inner join OCRD TC on TC.CardCode = TR.CardCode
inner join OCRG TG on TC.GroupCode = TG.GroupCode

Les agradecía la ayuda que me puedan brindar a mi consulta.

saludos Cordiales

Hola @ppierce, estas formateando mal tu tema, debes poner formato de codigo solo al query, no se lee bien.
Respecto al query el error que comentas es por que justo sacaste el campo CardCode del la subconsulta, asi que ya no es necesario que relaciones el resultado con la OCRD, quita el inner join con esta tabla al final:

@Willy_Caldero
Buenos dias
Gracias por corregirme el lo del formateo del tema esto fue lo que escribí anteriormente
Buenos tarde Ing Caldero recuro a usted nuevamente para que me pueda orientar en una nueva consulta que estoy realizando la misma es parecida a la ventas total por cliente por mes pero la que estoy realizando es ventas total por mes por Grupo de Cliente (GroupName) Utilizando la las tablas OINV, ORIN, OCRD Y OCRG. al momento de de correr la consulta me envía un error "Invalid Column Name CardCode’. deseo que me puedan orientar es este error ya que he buscado y no encuentro donde se esta presentando. A continuacion muestro la consulta modificada para que me muestre los totales por mes por grupo de cliente.

Sobre la recmoendacion que me dio sobre de quitar el Inner Join y la deje de esrta forma
/inner join OCRD TC on TC.CardCode = TR.CardCode/
inner join OCRG TG on TC.GroupCode = TR.GroupCode
el erro que me muestra es que la columna Groupname es invalida.

Sin mas por ell momento y espera que me pueda orientar s
Pedro

es que ya colocaste directo en la subconsulta el nombre del grupo, ya no necesitas ningun inner join al final:

/* SELECT FROM [dbo].[OINV] T1 */                          
  DECLARE @fechainicio AS DATE                            
  /* WHERE */                                                
  SET @fechainicio = /* T1.DocDate */'[%1]'

/* SELECT FROM [dbo].[OINV] T2 */                          
  DECLARE @fechafin AS DATE                            
  /* WHERE */                                                
  SET @fechafin = /* T2.DocDate */'[%2]'

;WITH TR as
(
select * from
(
select T0G.GroupName, Month(T0.DocDate) as 'Mes', (T0.DocTotal-T0.Vatsum) as 'TotVta'
FROM OINV T0 
    INNER JOIN OCRD T0C on T0C.CardCode = T0.CardCode
    INNER JOIN OCRG T0G on T0G.GroupCode = T0C.GroupCode 
WHERE T0.CANCELED = 'N'  and T0.DocDate between @fechainicio and @fechafin
Union all
select T1G.GroupName, Month(T1.DocDate) as 'Mes', ((T1.DocTotal-T1.Vatsum)*-1) as 'TotVta'
FROM ORIN T1 
INNER JOIN OCRD T1C on T1C.CardCode = T1.CardCode 
INNER JOIN OCRG T1G on T1G.GroupCode = T1C.GroupCode 
WHERE T1.CANCELED = 'N'   and T1.DocDate between @fechainicio and @fechafin 
) as TP
PIVOT (SUM(TP.TotVta) FOR TP.Mes IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) pvrt

) 
select TR.GroupName, 
ISNULL([1],0) as 'Enero', ISNULL([2],0) as 'Febrero', ISNULL([3],0) as 'Marzo', ISNULL([4],0) as 'Abril',
ISNULL([5],0) as 'Mayo', ISNULL([6],0) as 'Junio', ISNULL([7],0) as 'Julio', ISNULL([8],0) as 'Agosto',
ISNULL([9],0) as 'Septiembre', ISNULL([10],0) as 'Octubre', ISNULL([11],0) as 'Noviembre', ISNULL([12],0) as 'Diciembre',
(ISNULL([1],0)+ISNULL([2],0)+ISNULL([3],0)+ISNULL([4],0)+ISNULL([5],0)+ISNULL([6],0)+
ISNULL([7],0)+ISNULL([8],0)+ISNULL([9],0)+ISNULL([10],0)+ISNULL([11],0)+ISNULL([12],0)) as 'Total'

from TR
2 Me gusta

@Willy_Caldero
Muchas Gracias Ing. Caldero, por la ayuda y la explicación cada día aprendo algo nuevo.

Saludos Cordiales

@ppierce, por favor lee: Cómo usar el foro de Consultoria-SAP
Para aprender cómo publicar en la categoría correcta, es #sap-business-one (no en #consultas-sap como lo habías publicado). Y lee también cómo formatear correctamente :pray:

Tú eres parte de la comunidad, ayudanos a mantener el orden y bien organizada la misma.
Saludos