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

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列)
...全文
77 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的中间表

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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