我有这样的查询:
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))
答案 0 :(得分:0)
睡觉很好。问题是=&gt; (和)失踪了。
溶剂化:WHERE (X.ID = Y.XID OR X.ID = Z.XID)