ERP数据库,后台为SQL。请问用啥语句能把满足某一条的值在一份报表中正数显示为负数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ERP数据库,后台为SQL。请问用啥语句能把满足某一条的值在一份报表中正数显示为负数相关的知识,希望对你有一定的参考价值。

SQL
SERVER数据库是没有DECODE语法的。
使用通用的case
when语法就可以,就是按照条件来取不同的值的语法。
当类型是退料,那么就取相反数,否则取数量本身。
case
when
语法
case
类型
when
'退料'
then
0
-
数量
else
数量
end
或者
case
when
类型
=
'退料'
then
0
-
数量
else
数量
end
不知道你说的放到一个报表中,指的是不是显示在同一行。
select
物料,
sum(case
类型
when
'退料'
then
0
-
数量
else
0
end)
as
退料总数,
sum(case
类型
when
'领料'
then
数量
else
0
end)
as
领料总数
from
领退料表
group
by
物料
这个查询可以按物料分组,显示每个物料的总领料,总退料信息。你所说的放到一个报表中是不是这样的?
参考技术A 使用case
when
语法
select
case
业务类型
when
'退料'
then
0
-
数量
else
数量
end
as
数量
from

意思是:假设有一个业务类型的列,这个列的值如果是'退料',那么就取负数,0-数量得到。其他业务,取本身的数量。
参考技术B 用“0 - 字段”就行,减号前后最好留有空格
0可以省略,为加强易读性,可写为如下格式:"SELECT
-
[退料] AS 退料数 FROM 领退料汇总表"

sql查询语句如何能把不符合条件的数据也一并查出来

例如:表A数据有9条,表B数据有10条,where A.条件=B.条件,当他们关联起来一起查询的时候,如何把多出的1条也查出来

select * from b left join a on a.条件=b.条件

以多的那张表作为left join 左边的那个,这里也就是b表
参考技术A 使用left join
select * from b left join a on A.条件=B.条件
b表会全部显示出来,多出的一条,B表内容有数据,A表相应的字段是空(null)
参考技术B where是条件判断,只能通过条件筛选。
多的数据不行查出来,除非b中9条数据和a一样。
参考技术C select * from B left join A on A.条件=B.条件 参考技术D where A.条件(+)=B.条件

以上是关于ERP数据库,后台为SQL。请问用啥语句能把满足某一条的值在一份报表中正数显示为负数的主要内容,如果未能解决你的问题,请参考以下文章

请问修改表中的某一个日期类型的字段为当前系统时间的sql语句该如何书写。

在sql数据库中,一个表中某一个字段有很多用,隔开的数据,请问用sql语句如何分别读取这个表中的每一个数据

有谁能把下面的json的代码用通过程序后台把它给解析出来吗,无论用啥办法都行,算是小弟求求高手了..

SQL两表查询用啥命令?

SQL语句查询:查询满足第1个字段等于某值且第2个字段大于某值的所有记录中,统计第3个字段的平均值。

SQL2008如何跟踪某台电脑的执行语句?