为什么不工作在@Startdate和@Enddate之间进行ADate?

时间:2014-05-26 16:38:23

标签: sql-server-2008-r2

我有这样的查询:

SELECT @Amount = SUM(T.Amount) FROM (
    SELECT 
        (
            SELECT DISTINCT SUM(X.Price) 
            FROM X
            WHERE X.ID = Y.XID OR X.ID = Z.XID
            AND (X.ADate BETWEEN @StartDate AND @EndDate)
        ) AS Amount
    FROM B
        LEFT  JOIN Y ON B.YId = Y.Id
        LEFT  JOIN Z ON B.ZId = Z.Id 
    WHERE B.Id = @Id
        AND (B.YId = @YId OR @YId < 0)
        AND (B.ZId = @ZId OR @ZId < 0)) AS T

我选择的开始和结束日期。结果是一样的。

例如,开始日期为2012年1月1日,结束日期为2012年1月31日 然后选择开始日期2014年1月1日和结束日期2014年1月31日

通过以下数据:价格500和ADate = 1/24/2012

两个结果都是500?!

我错了什么?

我试过: AND(X.ADAT之间的过时(@StartDate AS DATETIME)和CAST(@EndDate AS DATETIME))

1 个答案:

答案 0 :(得分:0)

睡觉很好。问题是=&gt; (和)失踪了。 溶剂化:WHERE (X.ID = Y.XID OR X.ID = Z.XID)

相关问题