Ruben:
SQL Básico.
Todos los selects que se enganchan por UNION, son una sola instrucción SQL
Toda instrucción SQL, puede como máximo generar un solo CURSOR (ver ejemplos en la ayuda).
Como vas a unir los resultados, los campos generados por cada SELECT deben ser del mismo tipo en la misma posición.
(O sea, si en un SELECT, la primer columna es numérica, en todos los demás selects, debe ser numérica)
En el caso de campos numéricos, tratar de generar datos del mismo tipo numérico, porque si el primero es entero, puede truncar campos flotantes o monetarios.
En el caso de campos de texto (string o char) el ancho del dato que genere el primer select, es el que se usa en el resto de la consulta, por lo tanto, si el primer select genera un string más corta que en los otros selects, deberás "estirarla" con blancos (PADR).
Si una columna tiene campo fecha, en todos los selects del mismo tipo (ojo date<>datetime y viceversa)
Puedes agregar una columna que genere un valor fijo (constante) para cada select, de manera tal que o te sirve para ordenar o para conocer donde se originó (y controlar font, color en la grilla).
Después, el resto, es cuestión de prestar atención y enconlumnar apropiadamente.
Otra cosa, el ORDER BY es único para todos los selects y va al final.