当前位置: 代码迷 >> Sql Server >> 求解释解决方法
  详细解决方案

求解释解决方法

热度:103   发布时间:2016-04-27 13:38:31.0
求解释
create table 表头(fid int)
insert into 表头 values(1)
create table 表体(fid int,物料 varchar(10),采购员 varchar(10))
insert into 表体 values(1 ,'a', 'a')
insert into 表体 values(1 ,'b', 'b')
insert into 表体 values(1 ,'c', 'a')
go

select fid = (select count(distinct 采购员) from 表体 where fid = t.fid and 采购员 < t.采购员) + 1 , 物料,采购员 from 表体 t order by fid

drop table 表头 , 表体

这是wugui大侠给写的一段sql,哪位给详细解释下,包括sql执行的原理等等,理解不上去,谢谢啦

------解决方案--------------------
我记得你是求个序号?

你把这个看懂了,就明白了.这个列只对分数排序
SQL code
表jh03有下列数据:name scoreaa  99bb  56cc  56dd  77ee  78ff  76gg  78ff  501. 名次生成方式1,Score重复时合并名次SELECT * , Place=(SELECT COUNT(DISTINCT Score) FROM jh03 WHERE Score >= a.Score)FROM jh03 aORDER BY Place结果Name       Score        Place ---------------- ----------------- ----------- aa         99.00        1ee         78.00        2gg         78.00        2dd         77.00        3ff         76.00        4bb         56.00        5cc         56.00        5ff         50.00        62. 名次生成方式2 , Score重复时保留名次空缺SELECT * , Place=(SELECT COUNT(Score) FROM jh03 WHERE Score > a.Score) + 1FROM jh03 aORDER BY Place结果Name       Score        Place --------------- ----------------- ----------- aa         99.00        1ee         78.00        2gg         78.00        2dd         77.00        4ff         76.00        5bb         56.00        6cc         56.00        6ff         50.00        8
  相关解决方案