SQL带参数的存储过程

/*

         题目:查询指定的用户在指定的时间段内的下单信息,

         如果结束日期没有指的话,那么查询的是到今天为止的下单信息

*/

USE E_Market

GO

IF EXISTS(SELECT * FROM sysobjects WHERE name='usp_GetOrderInfo')

DROP PROC usp_GetOrderInfo

GO

CREATE PROC usp_GetOrderInfo

         @startDate datetime, 

         @endDate datetime=null,

         @userId varchar(20)=null 

AS

         IF  @endDate IS NULL

                   BEGIN

                            SET @endDate=GETDATE()

                   END

IF @userId IS NULL

                   BEGIN

                            SELECT C.CommodityName AS 商品名称,S.SortName AS 类别名称,

                            O.UserId AS 用户名,O.OrderTime AS 下单时间 FROM OrderInfo AS O

                            INNER JOIN CommodityInfo AS C ON O.CommodityId=C.CommodityId

                            INNER JOIN CommoditySort AS S ON C.SortId=S.SortId

                            WHERE O.OrderTime BETWEEN @startDate AND @endDate

                   END

         ELSE   --查询指定用户指定时间段内的所有订单信息

                   BEGIN

                            SELECT C.CommodityName AS 商品名称,S.SortName AS 类别名称,

                            O.UserId AS 用户名,O.OrderTime AS 下单时间 FROM OrderInfo AS O

                            INNER JOIN CommodityInfo AS C ON O.CommodityId=C.CommodityId

                            INNER JOIN CommoditySort AS S ON S.SortId=C.SortId

                            WHERE (O.OrderTime BETWEEN @startDate AND @endDate)

                            AND O.UserId=@userId

                   END

GO  --存储过程的结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT摆渡者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值