初学SQL2000,这样的SQL语句如何写呢,求高手帮助

qhsoftware 2018-12-28 06:04:23
BILL表的字段如下:name,type,money

name type money
换单费 应收 350
文件费 应收 450
设备管理费 应收 30
换单费 应付 300
设备管理费 应付 20
操作费 应付 120


我想实现如下结果:
费用名 应收 应付
换单 350 300
文件费 450 0
设备管理费 30 20
操作费 0 120

我用的是SQL2000,这样的SQL语句该如何在2000环境下写呢
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
2020再出发 2018-12-29
  • 打赏
  • 举报
回复
看你写的这个,是不是鱼人的软件?
2020再出发 2018-12-29
  • 打赏
  • 举报
回复



IF OBJECT_ID('dbo.[#ts]') IS NOT NULL --如果存在#ts表就删除该表
DROP TABLE dbo.[#ts]

go

Create Table #ts --建立测试表#ts
(
Name varchar(40),
Tlype varchar(20),
Money decimal(18,2)
)

insert into #ts (Name,Tlype,Money) values('换单费', '应收','350')
insert into #ts (Name,Tlype,Money) values('文件费','应收','450')
insert into #ts (Name,Tlype,Money) values('设备管理费', '应收','30')
insert into #ts (Name,Tlype,Money) values('换单费','应付','300' )
insert into #ts (Name,Tlype,Money) values('设备管理费','应付','20')
insert into #ts (Name,Tlype,Money) values('操作费','应付','120')
---上面语句:插入测试数据


--下面语句为提取数据

select Name,SUM(case when tlype='应收' then money else 0 end ) as 应收,
SUM(case when tlype='应付' then money else 0 end ) as 应付
from #ts group by Name
RINK_1 2018-12-28
  • 打赏
  • 举报
回复
你这个可以算是业务逻辑层面的问题了,估计是为了计算后得到一个年份,比如2018.
weixin_42124726 2018-12-28
  • 打赏
  • 举报
回复
declare @Fyear int,@Fperiod int
select @Fyear=fvalue from t_systemprofile where fkey='currentyear' and fcategory='gl'
select @Fperiod=fvalue from t_systemprofile where fkey='currentperiod' and fcategory='gl'
delete from t_balance where fyear*100+fperiod>@Fyear*100+@Fperiod

请问上面语句中的fyear*100+fperiod是什么意思?为什么要*100
(不好意思,俺是菜鸟,分也不够不能发贴,只能在这里问哈,碰碰运气)


netharry 2018-12-28
  • 打赏
  • 举报
回复
如果每项都有应收和应付就很容易: SELECT t1.name,t1.money as 应收,t2.money as 应付 FROM Bill t1 inner join Bill t2 on t1.name=t2.name where t1.type='应收' and t2.type='应付' 没有我就不会了
RINK_1 2018-12-28
  • 打赏
  • 举报
回复

SELECT NAME,
SUM(CASE WHEN TYPE='应收' THEN MONEY ELSE 0 END) AS 应收,
SUM(CASE WHEN TYPE='应付' THEN MONEY ELSE 0 END) AS 应付
FROM BILL
GROUP BY NAME

netharry 2018-12-28
  • 打赏
  • 举报
回复
上面不对,看错了
netharry 2018-12-28
  • 打赏
  • 举报
回复
select name as 费用名,type as 应收,money as 应付 from BILL where type='应收'

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧