SQL代码发错了,上面是我小改了一点的SELECT ZY_Detail.[ChargeTypeCode],DIC_Person.[Name],ZY_Detail.[TotalFee] FROM ZY_Detail
LEFT JOIN DIC_Person ON DIC_Person.[Id]=ZY_Detail.[DoctorId]
LEFT JOIN DIC_Office ON DIC_Office.[Id]=DIC_Person.[OfficeId]
WHERE ZY_Detail.[ChargeUserId] IS NOT NULL AND DIC_Office.[HospitalCode] LIKE '0101' AND ZY_Detail.[ChargeTime] BETWEEN '01 1 2009 12:00AM' AND '05 8 2009 12:00AM'
UNION ALL
SELECT MZ_Detail.[ChargeTypeCode],DIC_Person.[Name],MZ_Detail.[TotalMoney] FROM MZ_Detail
LEFT JOIN MZ_Main ON MZ_Detail.[MZMainId]=MZ_Main.[Id]
LEFT JOIN DIC_Person ON DIC_Person.[Id]=MZ_Main.[DoctorId]
LEFT JOIN DIC_Office ON DIC_Office.[Id]=DIC_Person.[OfficeId]
WHERE MZ_Detail.[ChargeUserId] IS NOT NULL AND MZ_Main.[OriginTypeCode]='01' AND DIC_Office.[HospitalCode] LIKE '0101'AND MZ_Detail.[ChargeTime] BETWEEN '01 1 2009 12:00AM' AND '05 8 2009 12:00AM'
这才是原始的,跟上面提的问题相对应的SQL代码
LEFT JOIN DIC_Person ON DIC_Person.[Id]=ZY_Detail.[DoctorId]
LEFT JOIN DIC_Office ON DIC_Office.[Id]=DIC_Person.[OfficeId]
WHERE ZY_Detail.[ChargeUserId] IS NOT NULL AND DIC_Office.[HospitalCode] LIKE '0101' AND ZY_Detail.[ChargeTime] BETWEEN '01 1 2009 12:00AM' AND '05 8 2009 12:00AM'
UNION ALL
SELECT MZ_Detail.[ChargeTypeCode],DIC_Person.[Name],MZ_Detail.[TotalMoney] FROM MZ_Detail
LEFT JOIN MZ_Main ON MZ_Detail.[MZMainId]=MZ_Main.[Id]
LEFT JOIN DIC_Person ON DIC_Person.[Id]=MZ_Main.[DoctorId]
LEFT JOIN DIC_Office ON DIC_Office.[Id]=DIC_Person.[OfficeId]
WHERE MZ_Detail.[ChargeUserId] IS NOT NULL AND MZ_Main.[OriginTypeCode]='01' AND DIC_Office.[HospitalCode] LIKE '0101'AND MZ_Detail.[ChargeTime] BETWEEN '01 1 2009 12:00AM' AND '05 8 2009 12:00AM'
这才是原始的,跟上面提的问题相对应的SQL代码
LEFT JOIN DIC_Person
LEFT JOIN DIC_Office
第二个sql使用上面两个语句的结果集与MZ_Main 作用
所以快乐
如果你将第二个语句的连接顺序换一下也可以试试
LEFT JOIN MZ_Main
LEFT JOIN DIC_Person
LEFT JOIN DIC_Office 改成
LEFT JOIN DIC_Person
LEFT JOIN DIC_Office
LEFT JOIN MZ_Main
每执行一次sql 都运行这个了吗