我需要查询,其中数据来自客户端和主要批准记录,并将其映射到映射表中。如果数据可用于客户批准,则首先检查客户批准情况,然后获取客户批准。如果没有数据可用于客户端,那么它应该获取特定日期的主要批准记录。以下查询:仅当另一个值存在时才选择一行
SELECT * FROM employee_map
WHERE DATE = '2013-11-13 00:00:00'
AND (WORKDAIRY_APPROVAL='ClientApproval' XOR WORKDAIRY_APPROVAL='MainApproval')
为第13次日期提供2行输出,但如果我将日期更改为第20日,我将获得主要批准。如果主要和客户批准都可用,我只需要客户批准数据。
------------------------------- ---------------------------------------
MAP_ID CATEGORY EMP_ID DATE EMP_NAME EMP_SAL APPROVAL
------------------------------------------
1 DIRECT 1 11/13/2013 JOHN 5,000 MainApproval
2 DIRECT 1 11/13/2013 JOHN 5,000 ClientApproval
3 DIRECT 2 11/20/2013 RAJ 2,000 MainApproval
4 DIRECT 3 11/21/2013 Ram 1,000 ClientApproval
请帮我一把。
做一个sqlfiddle。 – HerrSerker
这可能是有用的:https://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html – zundarz