Problemas con union
Me imagino que ya se tiene que estar aburriendo con estos errores básicos pero creame que son algo complejos para mi.
El siguiente código es de un procedure en el que trato de hacer la union de dos tablas a, b, c
Si @opcion = 'fa' me debería hacer la union de a y b y en caso contrario de a y c pero me muestra un inconveniente en el union y la única forma que me ha resultado esto es repitiendo la consulta a por el if y el else en realidad el código que esta abajo es algo pequeño con todo lo que se debe hacer en las dos consultas si me puede dar la mano le quedare muy agradecido
Declare @opcion varchar(2), @fechax varchar(10),@empresa varchar(3)
set @empresa = '001'
set @fechax = '05/05/2005'
set @opcion = 'PE'
select empresa,tipo,numero,tipo_doc,numero_doc,cliente,fecha,'' as pago,total,0 as val_ret,0 as val_iva
from fadocume where empresa = @empresa and tipo = @opcion and fecha = @fechax and anulado = 0
union
if @opcion = 'FA'
select EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente ,fecha,forma,sum(TOTAL),sum( val_ret),sum(val_iva)
from fadocume WHERE TIPO = 'PG' and anulado = 0 AND FECHA = @fechax and anulado = 0
group by EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente,fecha,forma
else
select EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente ,fecha,forma,sum(TOTAL),sum( val_ret),sum(val_iva)
from fadocume WHERE TIPO = 'PG' and anulado = 0 AND FECHA = @fechax and anulado = 0
group by EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente,fecha,forma
El siguiente código es de un procedure en el que trato de hacer la union de dos tablas a, b, c
Si @opcion = 'fa' me debería hacer la union de a y b y en caso contrario de a y c pero me muestra un inconveniente en el union y la única forma que me ha resultado esto es repitiendo la consulta a por el if y el else en realidad el código que esta abajo es algo pequeño con todo lo que se debe hacer en las dos consultas si me puede dar la mano le quedare muy agradecido
Declare @opcion varchar(2), @fechax varchar(10),@empresa varchar(3)
set @empresa = '001'
set @fechax = '05/05/2005'
set @opcion = 'PE'
select empresa,tipo,numero,tipo_doc,numero_doc,cliente,fecha,'' as pago,total,0 as val_ret,0 as val_iva
from fadocume where empresa = @empresa and tipo = @opcion and fecha = @fechax and anulado = 0
union
if @opcion = 'FA'
select EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente ,fecha,forma,sum(TOTAL),sum( val_ret),sum(val_iva)
from fadocume WHERE TIPO = 'PG' and anulado = 0 AND FECHA = @fechax and anulado = 0
group by EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente,fecha,forma
else
select EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente ,fecha,forma,sum(TOTAL),sum( val_ret),sum(val_iva)
from fadocume WHERE TIPO = 'PG' and anulado = 0 AND FECHA = @fechax and anulado = 0
group by EMPRESA,tipo,NUMERO,tipo_doc,NUMERO_DOC,cliente,fecha,forma
1 respuesta
Respuesta de denciso
1