我抓住了我的头,因为我可以让这段代码在SQL中工作,但是当我将它转移到一个简单的gridview时,代码错误指出'Invalid Object name表名”。SQL减法代码在SQL中工作,但不是在sqldatasource中工作
我试图做的是采取一个静态的数字,并从同一个表中的三个不同的列中减去它。
这是我SQL内的工作:
SELECT
(3000)
-
(SELECT COUNT(column1) from table1 where column1 = 'Agreed')
+
(SELECT COUNT(column2) from table1 where column2 = 'Agreed')
+
(SELECT COUNT(column3) from table1 where column3 = 'Agreed')
AS subtract
我已经试过了静态总走动这样
(3000)
-
SELECT
(SELECT COUNT(column1) from table1 where column1 = 'Agreed')
+
(SELECT COUNT(column2) from table1 where column2 = 'Agreed')
+
(SELECT COUNT(column3) from table1 where column3 = 'Agreed')
AS subtract
而且....
“3000 '
-
SELECT
(SELECT COUNT(column1) from table1 where column1 = 'Agreed')
+
(SELECT COUNT(column2) from table1 where column2 = 'Agreed')
+
(SELECT COUNT(column3) from table1 where column3 = 'Agreed')
AS subtract
但都返回SQL中的语法错误。
我希望得到的是从静态数字中取出三条select语句的总和的剩余部分。
我在这里错过了一些简单的东西吗?我难以理解为什么这可以在SQL中工作,但不是当我将代码转移到gridview时。
::编辑::
见下面回答的解决方案。必须重新编写代码才能使其正常工作。
SELECT
(3000)
-
a.c
+
b.c
+
c.c
from (SELECT COUNT(*) AS c from table1 where column1 = 'Agreed') a
left join (SELECT COUNT(*) AS c from table1 where column2 = 'Agreed') b on 1=1
left join (SELECT COUNT(*) AS c from table1 where column3 = 'Agreed') c on 1=1
你是如何在GridView中使用此代码?你的意思是一个sqldatasource? – boruchsiper
是的,一个sqldatasource。 –