• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

数据显示行号问题,感觉有点难度,谢谢!!

Angelnet 2008-02-21 12:53:42
SELECT px = 1, *, Place =
(SELECT COUNT(DISTINCT qty)
FROM DailyReportTemp02
WHERE qty >= t .qty AND CreateDate = t .CreateDate AND
GaName = t .GaName)
FROM DailyReportTemp02 t 运行得到以下结果
---------------------------------------
px 创建日期 功能名称 线别 代码 数量 机型 Place
1 2008-02-18 半成品测试 B线 C4 20 CL-323 1
1 2008-02-18 半成品测试 B线 C3 10 CL-323 2
1 2008-02-18 半成品测试 B线 C7 5 CL-323 3
1 2008-02-18 半成品测试 B线 C5 5 CL-323 3
1 2008-02-18 半成品测试 B线 C6 3 CL-323 4
1 2008-02-18 半成品测试 B线 NULL 1 CL-323 5
1 2008-02-18 半成品测试 B线 33 1 CL-323 5
1 2008-02-18 半成品测试 B线 44 1 CL-323 5
1 2008-02-18 投入 B线 NULL 1 CL-323 1
1 2008-02-19 半成品测试 B线 C4 19 CL-323 1
1 2008-02-19 半成品测试 B线 C3 11 CL-323 2
1 2008-02-19 半成品测试 B线 44 2 CL-323 3
1 2008-02-19 半成品测试 B线 NULL 1 CL-323 4
1 2008-02-19 成品测试 B线 C8 60 CL-323 1
1 2008-02-19 成品测试 B线 C4 15 CL-323 2
1 2008-02-19 成品测试 B线 C3 10 CL-323 3
1 2008-02-19 成品测试 B线 NULL 3 CL-323 4
以上结果是错误的,以下才是正确的,
px 创建日期 功能名称 线别 代码 数量 机型 Place
1 2008-02-18 半成品测试 B线 C4 20 CL-323 1
1 2008-02-18 半成品测试 B线 C3 10 CL-323 2
1 2008-02-18 半成品测试 B线 C7 5 CL-323 3
1 2008-02-18 半成品测试 B线 C5 5 CL-323 4
1 2008-02-18 半成品测试 B线 C6 3 CL-323 5
1 2008-02-18 半成品测试 B线 NULL 1 CL-323 6
1 2008-02-18 半成品测试 B线 33 1 CL-323 7
1 2008-02-18 半成品测试 B线 44 1 CL-323 8
1 2008-02-18 投入 B线 NULL 1 CL-323 1
1 2008-02-19 半成品测试 B线 C4 19 CL-323 1
1 2008-02-19 半成品测试 B线 C3 11 CL-323 2
1 2008-02-19 半成品测试 B线 44 2 CL-323 3
1 2008-02-19 半成品测试 B线 NULL 1 CL-323 4
意思就是Place应该刘流水号的形式,数量一样的也要重新编号,而不是一样的号,谢谢(请比较Place列)
...全文
36 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Angelnet 2008-02-21
谢谢 近身剪,这么晚还麻烦解决问题,真不好意思,再次感谢。
回复
jinjazz 2008-02-21
--建立测试环境
set nocount on
create table DailyReportTemp02(px varchar(20),CreateDate varchar(20),GaName varchar(20),线别 varchar(20),代码 varchar(20),qty int,机型 varchar(20),Place varchar(20))
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','C4','20','CL-323','1'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','C3','10','CL-323','2'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','C7','5','CL-323','3'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','C5','5','CL-323','3'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','C6','3','CL-323','4'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','NULL','1','CL-323','5'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','33','1','CL-323','5'
insert into DailyReportTemp02 select '1','2008-02-18','半成品测试','B线','44','1','CL-323','5'
insert into DailyReportTemp02 select '1','2008-02-18','投入','B线','NULL','1','CL-323','1'
insert into DailyReportTemp02 select '1','2008-02-19','半成品测试','B线','C4','19','CL-323','1'
insert into DailyReportTemp02 select '1','2008-02-19','半成品测试','B线','C3','11','CL-323','2'
insert into DailyReportTemp02 select '1','2008-02-19','半成品测试','B线','44','2','CL-323','3'
insert into DailyReportTemp02 select '1','2008-02-19','半成品测试','B线','NULL','1','CL-323','4'
insert into DailyReportTemp02 select '1','2008-02-19','成品测试','B线','C8','60','CL-323','1'
insert into DailyReportTemp02 select '1','2008-02-19','成品测试','B线','C4','15','CL-323','2'
insert into DailyReportTemp02 select '1','2008-02-19','成品测试','B线','C3','10','CL-323','3'
insert into DailyReportTemp02 select '1','2008-02-19','成品测试','B线','NULL','3','CL-323','4'
go
--测试
SELECT *, Place =
(SELECT COUNT(*)
FROM DailyReportTemp02
WHERE qty -checksum(代码)/10000000000 > =t.qty -checksum(t.代码)/10000000000 AND CreateDate = t .CreateDate AND
GaName = t .GaName)
FROM DailyReportTemp02 t
--删除测试环境
drop table DailyReportTemp02
set nocount off
/*
1 2008-02-18 半成品测试 B线 C4 20 CL-323 1 1
1 2008-02-18 半成品测试 B线 C3 10 CL-323 2 2
1 2008-02-18 半成品测试 B线 C7 5 CL-323 3 3
1 2008-02-18 半成品测试 B线 C5 5 CL-323 3 4
1 2008-02-18 半成品测试 B线 C6 3 CL-323 4 5
1 2008-02-18 半成品测试 B线 NULL 1 CL-323 5 6
1 2008-02-18 半成品测试 B线 33 1 CL-323 5 7
1 2008-02-18 半成品测试 B线 44 1 CL-323 5 8
1 2008-02-18 投入 B线 NULL 1 CL-323 1 1
1 2008-02-19 半成品测试 B线 C4 19 CL-323 1 1
1 2008-02-19 半成品测试 B线 C3 11 CL-323 2 2
1 2008-02-19 半成品测试 B线 44 2 CL-323 3 3
1 2008-02-19 半成品测试 B线 NULL 1 CL-323 4 4
1 2008-02-19 成品测试 B线 C8 60 CL-323 1 1
1 2008-02-19 成品测试 B线 C4 15 CL-323 2 2
1 2008-02-19 成品测试 B线 C3 10 CL-323 3 3
1 2008-02-19 成品测试 B线 NULL 3 CL-323 4 4
*/
回复
Angelnet 2008-02-21
我的是2000,要用视图显示,所以不能用监时表
回复
-狙击手- 2008-02-21
05用row_number()

2000 用带identity的中间表
回复
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-02-21 12:53
社区公告
暂无公告