zoukankan      html  css  js  c++  java
  • 销量排名,使用临时表,不使用函数和变量情况下的实现


    --有销售表如下,销售人员名称及销售额(万元)
    create table #temp(name nvarchar(32),saleroom int)
    insert into #temp(name,saleroom) values('关羽',500)
    insert into #temp(name,saleroom) values('张飞',400)
    insert into #temp(name,saleroom) values('赵云',410)
    insert into #temp(name,saleroom) values('马超',430)
    insert into #temp(name,saleroom) values('黄忠',350)

    --增加排名字段的同时,转存到临时表(应对非SQL Server没有表变量的情况下的使用)
    select Null as ID,* into #Report from #temp

    --当前销售代表的销量(Report)和所有销售代表比较(AllReport),得出比自己销量高的代表有多少个。
    --而自己的排名,就是销量比我高的人数+1
    Update #Report
    Set id = (Select Count(*) + 1 From #Report AllReport Where Report.saleroom < AllReport.saleroom)
    From #Report Report


    select  id as N'销售排名',name as N'销售代表',saleroom as N'销售额(万元)' from #Report

    drop table #Report

    --结束
    drop table #temp

  • 相关阅读:
    排序
    wine-qq 安装
    逆元模板
    最长上升子序列
    SGU[115] Calendar
    SGU[123] The sum
    SGU[105] Div 3
    SGU[102] Coprimes
    SGU[100] A+B
    poj-1325-Machine Schedule
  • 原文地址:https://www.cnblogs.com/ZhouXiHong/p/616403.html
Copyright © 2011-2022 走看看