Tengo estas 5 tablas:
** Polizas **
-> Nic (PK)
-> Seccion (FK)
-> Vigente_Desde
-> Vigente_Hasta
-> [...]
** Secciones **
-> Id (PK)
-> Es_Auto (Integer boolean 1/0)
-> [...]
** Detalles **
-> Nic (FK)
-> Descripcion (Varchar)
** Autos **
-> Id_Auto (PK)
-> Nic (FK)
-> Matricula
-> Marca
-> Modelo
-> [...]
** Detalle_Auto **
-> Id_Auto (FK)
-> Tiene_Radio (Integer boolean 1/0)
-> [...]
La estructura de las tablas no puedo modificarlas, ya que son de un sistema que ya esta hecho (y no lo hice yo), así que tendría que resolver esto solo con un select.
Lo que quiero hacer es, para las pólizas que estén vigentes, (NOW() BETWEEN Polizas.Fecha_desde AND Polizas.Fecha_Hasta) Ver si pertenecen a una seccion que sea de autos, si es asi, devolver la matricula, marca, modelo y si tiene radio, ademas de todos los detalles asociados a la poliza. Si no es auto, solo devolver los detalles asociados.
Para que se den una idea esto es para un sistema hibrido, esta consulta voy a tener que ejecutarla en mysql y en sql server 2000
Tiene que funcionar para todas las polizas en una sola vez.
Esta es la consulta tal como la tengo hasta ahora:
Código MySQL:
Ver original
Preguntas:
1-> La unica forma de hacerlo es agregando mas union y mas consultas por cada campo?
2-> Como podria ordenar el resultado de todas las union por Nic?
3-> Que es lo que tendria que cambiarle para que funcione en sql server 2000 ademas de en mysql?
Muchas gracias