Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sqlserver中使用抽取_Sql_Sql Server - Fatal编程技术网

在sqlserver中使用抽取

在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 '

我编写了一个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
    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子句这样的重要部分丢失了