首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何写一个取得某记录行号的存储过程 [已结贴,结贴人:ahongzhu]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ahongzhu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-17 18:06:09 楼主
    我想写一个存储过程,取得某条记录的行号,如表t1,字段有单号,日期...,我要通过日期倒序排列取得某张单的行号,如何写一个存储过程,输入参数@code,输出参数@rowID,然后通过ADO调用,得到@rowID。
    例:单号  日期
      001    2008-05-01
      002    2008-05-02
      003    2008-05-04
      ...
    按日期倒序,如何得到001这张单的rowID是3

    如何写这个存储过程?谢谢!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-05-17 18:10:081楼 得分:10
    SQL code
    select id=identity(int,1,1),* into # from tb order by 日期 desc select id from # where 单号='001'
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangCK
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-05-17 18:11:202楼 得分:2
    --2005

    SQL code
    ; with CTE as ( select id=row_number() over(order by 日期 desc),* from tb ) select id from CTE where 单号='001'
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Limpire
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      2

    发表于:2008-05-17 18:12:083楼 得分:0
    agree
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianyusunkuangyu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-17 18:15:594楼 得分:8
    create proc getid(@code varchar(10),@rowid int output)
    as
    begin
    begin tran
    declare @int int
    select @int=0

    if exists(select 1 from sysobjects where name='jj' and xtype='u')
        drop table jj
    select '0' rowid ,单号,日期 into jj from t1 ordery by 日期 desc

    update jj set rowid=@int,@int=@int+1

    select @rowid=rowid from jj where 单号=@code
    if @@error <>0
      begin
        rollback tran
        raiserror('数据库过程错误,16,1) with seterror
        return
        end
    commit tran
    end


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianyusunkuangyu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-17 18:17:415楼 得分:0
    1楼的回答的比我的简化了一步 不需要更新数据了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ojuju10
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-17 21:56:186楼 得分:0
    SQL code
    select id=row_number() over (order by 日期 desc),* from tb
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved