Oye eso lo estas complicando mas de lo que deberias, normalmente ese tipo de manejos se hace con un campo de estado, ya sea integer o un campo de tipo varchar de un solo caracter, y guardas los estados por ejemplo:
A=activa
C=cancelada
E=emitida
D=Devuelta
o los que necesites, y luego con un simple where podrias hace lo que necesitas.
Es altamente recomendable que el estado quede independizado del tipo de facturas, y asi facilmente podrias combinar 2 wheres, por ejemplo asumiendo
que tipo 1= Contado y 2=Credito
podria ser asi:
Código SQL
[-]
SELECT *FROM FACTURAS WHERE TIPO=1 AND STATUS='E'
Con eso filtrarias las facturas de contado que fueron impresas.
Espero te sirvan estas ideas.
Saludos