2011-11-21 81 views
0

这是查询我已经:麻烦的MySQL查询没有返回正确的信息

use willkara; 

select EngagementNumber,AgentID, EntertainerID, StartDate, EndDate, ContractPrice, ContractPrice/DateDiff(EndDate,StartDate) AS PricePerDay 
FROM EA_Engagements 
where StartDate <= '1999-8-13' 
    and EndDate >= '1999-8-8' 
ORDER BY EngagementNumber; 

而这正是问题:我需要8/8之间发生交战的列表

/1999和8/13/1999。我只想看看在1999年8月8日或之后开始并在1999年8月13日或之前结束的合约。对于每一次参与活动,我都需要知道参与的时间(以天为单位),表演者和代理人的身份以及每日娱乐活动的合同价格。记住,当我们计算参与的时间长度时,我们既包括它开始的那一天,也包括它结束的那一天。请按照订婚编号顺序对信息进行分类。 [2 rows]

需要8列;最后一列必须标注PricePerDay

由于某些原因,某些结束日期是8-15和8-19,并且它只是假设是在13日结束的日期。

+0

任何机会......你碰巧有你的列切换? 'StartDate <='1999-8-13'和EndDate> ='1999-8-8''是'EndDate <='1999-8-13'StartDate and> ='1999-8-8''或者我可以我错过了什么.. – Nonym

回答

0

由于它们是两个字段,因此理论上可能会有人将开始日期放在比结束日期更早的地方,反之亦然,从而导致结果不正确。我会相应地调整您的查询,做一个介于或类似的东西。