2011-11-21 113 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

由於它們是兩個字段,因此理論上可能會有人將開始日期放在比結束日期更早的地方,反之亦然,從而導致結果不正確。我會相應地調整您的查詢,做一個介於或類似的東西。