读书人

SQL字段算解决思路

发布时间: 2012-01-23 21:57:28 作者: rapoo

SQL字段算
表如下:
量 作 生日期 生量 累完工 未完工 ID
A0001 1500 A01 2007/09/01 500 500 1000 1
A0001 1500 A01 2007/09/02 700 1200 300 2
A0001 1500 A01 2007/09/03 300 1500 0 3
A0001 1500 B01 2007/09/01 800 800 700 4
B0001 1600 A01 2007/09/04 640 640 960 5
B0001 1600 A01 2007/09/05 300 940 660 6
.
.
.
需要用SQL算出每一之累完工未完工:
累完工=依作算已生量之和
未完工=量-累完工
希望不使用游!!

[解决办法]
这两列是不是楼主要显示的结果: 累完工 未完工

SQL code
declare @t table ( varchar(10),量 int,作 varchar(10),生日期 datetime,生量 int,id int) 
insert into @t values('A0001',1500,'A01','2007/09/01',500,1)
insert into @t values('A0001',1500,'A01','2007/09/02',700,2)
insert into @t values('A0001',1500,'A01','2007/09/03',300,3)
insert into @t values('A0001',1500,'B01','2007/09/01',800,4)
insert into @t values('B0001',1600,'A01','2007/09/04',640,5)
insert into @t values('B0001',1600,'A01','2007/09/05',300,6)


select
*,
[累完工]=(select sum(生量) from @t where ID!>t.ID and =t. and 作=t.作),
[未完工]=量-(select sum(生量) from @t where ID!>t.ID and =t. and 作=t.作)
from
@t t

(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)

量 作 生日期 生量 id 累完工 未完工
---------- ----------- ---------- ------------------------------------------------------ ----------- ----------- ----------- -----------
A0001 1500 A01 2007-09-01 00:00:00.000 500 1 500 1000
A0001 1500 A01 2007-09-02 00:00:00.000 700 2 1200 300
A0001 1500 A01 2007-09-03 00:00:00.000 300 3 1500 0
A0001 1500 B01 2007-09-01 00:00:00.000 800 4 800 700
B0001 1600 A01 2007-09-04 00:00:00.000 640 5 640 960
B0001 1600 A01 2007-09-05 00:00:00.000 300 6 940 660

(所影响的行数为 6 行)

读书人网 >SQL Server

热点推荐