不好意思,更正一下,是去掉第一个检索语句的order by c.license 即这样SELECT c.license_id ,c.license , ( case when day(check_date)=cast( 1 AS varchar(2)) then 1 else 0 end ) '1' , ( case when day(check_date)=cast( 2 AS varchar(2)) then 1 else 0 end ) '2' FROM vehicle_info v , vehicle_condcheck_lst c , other_vehicle_info o WHERE c.license_id = v.license_id AND c.check_date >= '2005-06-01 00:00:00' AND c.check_date < '2005-07-01 00:00:00'
UNION SELECT '' license_id, c.license , ( case when day(check_date)=cast( 1 AS varchar(2)) then 1 else 0 end ) '1' , ( case when day(check_date)=cast( 2 AS varchar(2)) then 1 else 0 end ) '2' FROM other_vehicle_info v , vehicle_condcheck_lst c WHERE c.license = v.license AND c.check_date >= '2005-06-01 00:00:00' AND c.check_date < '2005-07-01 00:00:00' ORDER BY c.license
然后再试一下
即这样SELECT c.license_id ,c.license , ( case when day(check_date)=cast( 1 AS varchar(2)) then 1 else 0 end ) '1' ,
( case when day(check_date)=cast( 2 AS varchar(2)) then 1 else 0 end ) '2'
FROM vehicle_info v , vehicle_condcheck_lst c ,
other_vehicle_info o
WHERE c.license_id = v.license_id AND c.check_date >= '2005-06-01 00:00:00' AND
c.check_date < '2005-07-01 00:00:00'
UNION SELECT '' license_id, c.license ,
( case when day(check_date)=cast( 1 AS varchar(2)) then 1 else 0 end ) '1' ,
( case when day(check_date)=cast( 2 AS varchar(2)) then 1 else 0 end ) '2'
FROM other_vehicle_info v , vehicle_condcheck_lst c WHERE c.license = v.license
AND c.check_date >= '2005-06-01 00:00:00' AND c.check_date < '2005-07-01 00:00:00'
ORDER BY c.license