DISTINCT显示重复的日期,我想过去10个月检索信息,但我有一对夫妇的错误。首先,我的查询基于该PolEffDate
场在我的结果早在2013年第二,我看到重复获取数据,如:选择每个客户的电子邮件
EntityID | PolEffDate | EMail | CustNo | Producer | BusinessPhone
abcde-12345-fghij-67890 | 2013-09-24 | [email protected] | 31000 | Bob Builder | 123-456-7890
abcde-12345-fghij-67890 | 2013-12-01 | [email protected] | 31000 | Bob Builder | 123-456-7890
abcde-12345-fghij-67890 | 2014-09-24 | [email protected] | 31000 | Bob Builder | 123-456-7890
这里是我的SQL查询:
SELECT DISTINCT
CONVERT(VarChar(36), Customer.CustId) AS EntityID
, BasicPolInfo.PolEffDate, Customer.EMail, Customer.CustNo
, (isnull(Employee.Firstname + ' ','') + isnull(Employee.LastName,''))
AS Producer, Employee.BusFullPhone
FROM
Customer INNER JOIN BasicPolInfo ON Customer.CustId = BasicPolInfo.CustId INNER JOIN
Transaction ON BasicPolInfo.PolId = Transaction.PolId INNER JOIN
GeneralBranch ON Customer.GLBrnchCode = GeneralBranch.GLBrnchCode INNER JOIN
GeneralDepartment ON Customer.GLDeptCode = GeneralDepartment.GLDeptCode INNER JOIN
GeneralDivision ON Customer.GLDivCode = GeneralDivision.GLDivCode INNER JOIN
Employee ON BasicPolInfo.ExecCode = Employee.EmpCode
WHERE
BasicPolInfo.PolExpDate >= DATEADD(MONTH, -10,CONVERT(VARCHAR(11),GETDATE(),106))
AND BasicPolInfo.PolExpDate <= CONVERT(VARCHAR(11),GETDATE(),106)
AND Customer.Active = 'Y'
AND Customer.typeCust = 'P'
谢谢你的帮助。我会尽力回答任何问题。
也许转换PolExpDate为日期,而不是将GETDATE的比较为VARCHAR –
你日期的逻辑是不必要的复杂,你可以试试:'BETWEEN DATEADD (月,-10,CAST(GETDATE()AS DATE))和CAST(GETDATE()AS DATE)' – Kittoes0124
什么数据类型是PolExpDate? – xQbert