Error en Consulta Union All

Hola,

Estoy intentando hacer una consulta que agrupa 2 consultas, que por separado no dan error, pero si las uno, da un error que no logro encontrar por que puede ser

La primera de ellas me muestra todos los artículos que no tienen una propiedad determinada.
La segunda de ellas muestra los mismos datos, pero únicamente de los artículos que tienen esa propiedad puesta en su ficha, agrupados haciendo la suma del resto de los campos

Pero cuando intento ver las 2 consultas juntas, me da un error

[SAP AG][LIBODBCHDB DLL][HDBODBC] General error;339 invalid number: attribute value is not a number;[here]fixed ‘Valores definidos por usuario’ (CSHS) (“XXX.OITM.ItemCode”, 18, 0), XXX.OITM.ItemCode = ‘BY70-5GT’[string]

La consulta es:

SELECT  T99."Número de Artículo",
	T99."Descripción de artículo",
	T99."Prefamilia",
	T99."En stock",
	T99."Solicitado",
	T99."Comprometido",
	T99."Stock Disponible",
	T99."Stock máximo",
	T99."Pedido mínimo",
	T99."Stock mínimo" 
FROM (

	SELECT T0."ItemCode" as "Número de Artículo", 
		T0."ItemName" as "Descripción de artículo",
		T0."U_EXO_SFAM" as "Prefamilia",
		T1."OnHand" as "En stock",
		T1."OnOrder" as "Solicitado",
		T1."IsCommited" as "Comprometido",
		(T1."OnHand"+T1."OnOrder"-T1."IsCommited") as "Stock Disponible",
		T1."MaxStock" as "Stock máximo",
		T1."MinOrder" as "Pedido mínimo",
		T1."MinStock" as "Stock mínimo"  
	FROM OITM T0  INNER JOIN OITW T1 ON T0."ItemCode" = T1."ItemCode" INNER JOIN OWHS T2 ON T1."WhsCode" = T2."WhsCode" WHERE T1."WhsCode" ='[%0]' and T1."OnHand" <> 0 AND T0."U_EXO_SFAM" IS NULL 

	UNION ALL

	SELECT  count(T0."ItemCode") as "Número de Artículo", 
		count(T0."ItemName") as "Descripción de artículo" , 
		T0."U_EXO_SFAM" as "Prefamilia" ,
		SUM(T1."OnHand") as "En stock", 
		SUM(T1."OnOrder") as "Solicitado" , 
		SUM(T1."IsCommited") as "Comprometido",
		SUM(T1."OnHand"+T1."OnOrder"-T1."IsCommited") as "Stock Disponible" , 
		SUM( T1."MaxStock") as "Stock máximo", 
		SUM(T1."MinOrder") as "Pedido mínimo", 
		SUM(T1."MinStock") as "Stock mínimo" 
	FROM OITM T0  INNER JOIN OITW T1 ON T0."ItemCode" = T1."ItemCode" INNER JOIN OWHS T2 ON T1."WhsCode" = T2."WhsCode" WHERE T1."WhsCode" ='[%0]'  and  T0."U_EXO_SFAM"  IS  NOT NULL GROUP BY T0."U_EXO_SFAM"

)  T99
order  BY T99."Número de Articulo"

No veo donde esta el problema.

Un saludo

Buenas jesus, el tipo de dato tiene que ser el mismo en un UNION ALL. Count(T0.“ItemCode”) te va a traer un int y en el union de arriba T0.“ItemCode” es nvarchar

1 me gusta

y asi con todas las columnas

Era eso,

Poniendo TO_NVARCHAR(…) o simplemente 'Select ’ ’ as “Número de Articulo” para que muestre una columna con el mismo nombre pero vacía , en los 2 campos que devolvían un entero en los campos COUNT(,), no da el error.

Gracias :slight_smile:

1 me gusta

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.