cancel
Showing results for 
Search instead for 
Did you mean: 

error en query

former_member299313
Participant
0 Kudos

Comunidad de SAP espero me puedan apoyar compartiendo su conocimiento y expereciencia, estoy generando un query en el cual incluyo facturas deudores y notas de credito, al momento de ejecutarlo me aparece el siguiente error. de antemano agradezco de su gran ayuda.

Sintaxis:

SELECT T0.[CardCode], T0.[CardName], T0.[DocDate], T0.[CreateDate], 'FACTURA' as Documento, T0.[DocNum], T1.[U_Sucursal], T2.[ItemCode], T2.[Dscription], T2.[Quantity], T2.[Price], T2.[LineTotal], T3.[U_Factor], T4.[SlpName], T5.[firstName], T5.[lastName], T4.[U_SEGMENTO], T3.[U_Grup], T3.[U_Clasif], T3.[U_Marca], (T2.[Quantity] * T3.[U_Factor]) as Litros_Piezas, T2.[LineTotal] * (1-(T0.DiscPrcnt/100)) as 'Importe total', T6.[PymntGroup], T0.[DiscPrcnt]

FROM OINV T0  INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode INNER JOIN OHEM T5 ON T0.OwnerCode = T5.empID INNER JOIN OCTG T6 ON T0.GroupNum = T6.GroupNum where T0.[CreateDate] between [%0] and [%1]

Union all

SELECT T0.[CardCode], T0.[CardName], T0.[DocDate], T0.[CreateDate], 'NC', T0.[DocNum], T1.[U_Sucursal], T2.[ItemCode], T2.[Dscription], T2.[Quantity], T2.[Price], T2.[LineTotal], T3.[U_Factor], T4.[SlpName], T5.[firstName], T5.[lastName], T4.[U_SEGMENTO], T3.[U_Grup], T3.[U_Clasif], T3.[U_Marca], (T2.[Quantity] * T3.[U_Factor]) as Litros_Piezas, T6.[PymntGroup], T0.[DiscPrcnt]

FROM ORIN T0  INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN RIN1 T2 ON T0.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode INNER JOIN OHEM T5 ON T0.OwnerCode = T5.empID INNER JOIN OCTG T6 ON T0.GroupNum = T6.GroupNum where T0.[CreateDate] between [%0] and [%1]

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Noé,

Este mensaje de error de SQL sucede cuando los queries que estás uniendo no tienen la misma cantidad de columnas.

En el 2o. query te hace falta la columna de Importe Total.

Saludos,

JC.

former_member299313
Participant
0 Kudos

estimado Juan Carlos gracias por tu ayuda, pero ya le agregue esa columna y aun así me aparece el mismo error.

Former Member
0 Kudos

Qué raro.

Corre ambos queries sin el UNINO ALL, y verifica las columnas de ambos resultados. Ahí podrás identificar qué columna te falta.

En una prueba que hice vi que faltaba la de Importe Total.

former_member299313
Participant
0 Kudos

Mil gracias Juan Carlos, ya quedó.

Answers (1)

Answers (1)

Former Member
0 Kudos

En el segundo SELECT no has incluido la columna de Importe Total

former_member299313
Participant
0 Kudos

Mil gracias Nelson por tu ayuda.

Saludos,

Former Member
0 Kudos

Te quedo algo así ??

SELECT

T0.[CardCode]

,T0.[CardName]

,T0.[DocDate]

,T0.[CreateDate]

,'FACTURA' as Documento

,T0.[DocNum]

,T2.[ItemCode]

,T2.[Dscription]

,T2.[Quantity]

,T2.[Price]

,T2.[LineTotal]

,T4.[SlpName]

,T5.[firstName]

,T5.[lastName]

, T6.[PymntGroup]

, T0.[DiscPrcnt]

FROM OINV T0  INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry

     INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode

   INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode

    INNER JOIN OHEM T5 ON T0.OwnerCode = T5.empID

     INNER JOIN OCTG T6 ON T0.GroupNum = T6.GroupNum where T0.[CreateDate] between '01/01/2015' and '12/31/2015'

 

Union all

 

SELECT

T0.[CardCode]

,T0.[CardName]

,T0.[DocDate]

,T0.[CreateDate]

,'NC'

,T0.[DocNum]

,T2.[ItemCode]

,T2.[Dscription]

,T2.[Quantity]

,T2.[Price]

,T2.[LineTotal]

,T4.[SlpName]

,T5.[firstName]

,T5.[lastName]

,T6.[PymntGroup]

,T0.[DiscPrcnt]

FROM ORIN T0  INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode

INNER JOIN RIN1 T2 ON T0.DocEntry = T2.DocEntry

INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode

INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode

INNER JOIN OHEM T5 ON T0.OwnerCode = T5.empID

INNER JOIN OCTG T6 ON T0.GroupNum = T6.GroupNum where T0.[CreateDate] between '01/01/2015' and '12/31/2015'

Desde Villavicencio Colombia

Ariel Plata