我在sql server中得到一个“Column BarMapping多次指定错误”。我无法弄清楚为什么。下面是我的代码:
SELECT @FooCount= COUNT(*) FROM
(SELECT * FROM Download_Table dl
LEFT JOIN @BarMapping sm
ON sm.cccID=dl.cccID
WHERE DATEPART(hh, GETDATE())=DATEPART(hh, dl.DTS) AND sm.Store=73) errors
答案 0 :(得分:2)
select *
从不同的表中获取相同的字段名称。而你正在子查询中使用它。为什么不这样做:
SELECT @FooCount = COUNT(*)
FROM Download_Table dl LEFT JOIN
@BarMapping sm
ON sm.cccID=dl.cccID AND sm.Store = 73
WHERE DATEPART(HOUR, GETDATE()) = DATEPART(HOUR, dl.DTS);
您根本不需要子查询。
答案 1 :(得分:1)
看起来你要加入的表(Download_Table和存储过程BarMapping的结果)都有一个公共列,我猜是BarMapping导致问题或混淆产生错误。因此,通过使用表和列名称或一个简单的修复将更改Count(*)到Count(column_name)以使其工作