sql中Max()的数据转换

sql中Max()的数据转换,sql,tsql,Sql,Tsql,这是我的查询,我不确定是什么导致变量没有显示结果 DECLARE @Display int, @MaxPediodPaid int, @MaxDate datetime, @DealRef varchar(11), @QuoteDate datetime SET @DealRef='140200100538136' SET @QuoteDate = GETDATE() SELECT @MaxPediodPaid=MAX(Period),@MaxDate=

这是我的查询,我不确定是什么导致变量没有显示结果

DECLARE @Display  int, 
    @MaxPediodPaid int,
    @MaxDate datetime, 
    @DealRef varchar(11),
    @QuoteDate datetime

SET @DealRef='140200100538136'
SET @QuoteDate = GETDATE()

SELECT @MaxPediodPaid=MAX(Period),@MaxDate=MAX(PayDate) 
FROM PaymentHistory
WHERE DealRef =  @DealRef;

SELECT @MaxPediodPaid , @MaxDate;
我声明的变量@MaxPediodPaid和@MaxDate分别是int和datetime。如何将MAXPeriod和MAXPayDate的函数值转换为赋值


非常感谢您的任何输入。

如果您得到的是空值,那么可能与where子句不匹配。感谢您对Godron进行了寻址,但我验证了这一点并返回了一行。要尝试的一点是初始化变量示例:在选择@MAX之前选择@MaxPeriodPaid=-1,@MaxDate='1900-01-01'。。。。并且它应该被select查询覆盖。这将确认返回的现有行中是否有NULL或根本没有行。Hmmm。您已将@dealref声明为11个字符,并将其设置为15个字符的字符串。我坚持没有行匹配的假设。你是对的,戈登!!它解决了这个问题。