在sqlserver中使用抽取
我编写了一个sql查询和示例查询,如下所示:在sqlserver中使用抽取,sql,sql-server,Sql,Sql Server,我编写了一个sql查询和示例查询,如下所示: select value1, value2, value3, ( select CAST(amount1 as decimal(17,2)) from table1 where something...) - select CAST(amount2 as decimal(17,2)) from table1 where something...) ) as '
select
value1,
value2,
value3,
(
select CAST(amount1 as decimal(17,2)) from
table1 where something...)
- select CAST(amount2 as decimal(17,2)) from table1 where something...)
) as 'Total Purchase'
from
table1
where
something
但是,我在-运算符处遇到语法错误
我尝试使用下面的Set语句
Declare
@value1 decimal(17,2),
@value2 decimal(17,2),
@result decimal(17,2)
set value1 = select CAST(amount1 as decimal(17,2)) from table1 where something...);
set value2 = select CAST(amount2 as decimal(17,2)) from table1 where something...);
set result = value1 - value2;
但我又犯了语法错误
我可以用什么来代替-operator
谢谢你的建议,只是一个语法错误,我相信应该是这样的:
(
(select CAST(amount1 as decimal(17,2)) from table1 where something...) - (select CAST(amount2 as decimal(17,2)) from table1 where something...)
) as total purchase
只是语法错误,我相信应该是这样的:
(
(select CAST(amount1 as decimal(17,2)) from table1 where something...) - (select CAST(amount2 as decimal(17,2)) from table1 where something...)
) as total purchase
如果我理解正确,您发布的查询可以简化为以下内容
select
value1,
value2,
value3,
CAST(amount1 as decimal(17,2)) - CAST(amount2 as decimal(17,2)) as 'Purchase'
from
table1
where
something
或者尝试使用外部查询执行相同的操作,如
select value1, value2,value3, (amt1 - amt2) as 'Total Purchase'
from
(
select
value1,
value2,
value3,
CAST(amount1 as decimal(17,2)) as amt1,
CAST(amount2 as decimal(17,2)) as amt2
from
table1
where
something
) tab
如果我理解正确,您发布的查询可以简化为以下内容
select
value1,
value2,
value3,
CAST(amount1 as decimal(17,2)) - CAST(amount2 as decimal(17,2)) as 'Purchase'
from
table1
where
something
或者尝试使用外部查询执行相同的操作,如
select value1, value2,value3, (amt1 - amt2) as 'Total Purchase'
from
(
select
value1,
value2,
value3,
CAST(amount1 as decimal(17,2)) as amt1,
CAST(amount2 as decimal(17,2)) as amt2
from
table1
where
something
) tab
sql中有很多错误。试试这个
SELECT value1,
value2,
value3,
(SELECT Cast(amount1 AS DECIMAL(17, 2))
FROM table1 where something...) - (SELECT Cast(amount2 AS DECIMAL(17, 2))
FROM table1 where something...) AS 'Total Purchase'
FROM table1
或
sql中有很多错误。试试这个
SELECT value1,
value2,
value3,
(SELECT Cast(amount1 AS DECIMAL(17, 2))
FROM table1 where something...) - (SELECT Cast(amount2 AS DECIMAL(17, 2))
FROM table1 where something...) AS 'Total Purchase'
FROM table1
或
在“某物…”的情况下,在所有的地方都是相等的
select
value1,
value2,
value3,
(
select (CAST(amount1 as decimal(17,2)) - CAST(amount2 as decimal(17,2)) )
) as 'Total Purchase'
from
table1
where
something
在“某物…”的情况下,在所有的地方都是相等的
select
value1,
value2,
value3,
(
select (CAST(amount1 as decimal(17,2)) - CAST(amount2 as decimal(17,2)) )
) as 'Total Purchase'
from
table1
where
something
在某物中添加一个…-选择前选择右键代码尝试从数字中减去表格。为什么选择第二个?你想干什么?查找两行之间的金额差异?something是非常重要的,因为您可以通过自连接获得这两个数量。或者您正在尝试从同一行减去两列值?@Mahmut EFE您的子选择只需要返回一行,因此您可以使用SELECT SUAMOUNT1..-选择SUMamount2…在某物中添加一个…-选择前选择右键代码尝试从数字中减去表格。为什么选择第二个?你想干什么?查找两行之间的金额差异?something是非常重要的,因为您可以通过自连接获得这两个数量。或者您正在尝试从同一行减去两列值?@Mahmut EFE您的子选择只需要返回一行,因此您可以使用SELECT SUAMOUNT1..-选择SUMamount2…感谢您的回复。但它不起作用。我也犯了同样的错误。@MahmutEFE你想做什么?这段代码毫无意义,像WHERE子句这样的重要部分在您的回复中丢失了存储库。但它不起作用。我也犯了同样的错误。@MahmutEFE你想做什么?这段代码毫无意义,像WHERE子句这样的重要部分丢失了