存储过程代码如下,执行时为啥始终说SELECT附近有代码错误?SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ListOrders]
(
  @UserID int
)
AS
SELECT
  Orders.OrderID,
  Cast(sum(OrderContent.BookQuantity*OrderContent.unitcost)as money)as OrderTotalCost,
  Orders.OrderDate
FROM
  Orders
  INNER JOIN OrderContent ON Orders.OrderID=OrderContent.OrderID
GROUP BY
  UserID,
  Orders.OrderID,
  Orders.OrderDate
HAVING
  Orders.UserID=@UserID

解决方案 »

  1.   

    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[ListOrders]
    (
    @UserID int
    )
    AS
    SELECT
    Orders.OrderID,
    Cast(sum(OrderContent.BookQuantity*OrderContent.unitcost)as money)as OrderTotalCost,
    Orders.OrderDate
    FROM
    Orders
    INNER JOIN OrderContent ON Orders.OrderID=OrderContent.OrderID
    where Orders.UserID=@UserID
    Orders.UserID=@UserID
    GROUP BY
    UserID,
    Orders.OrderID,
    Orders.OrderDate
    改成这样。
      

  2.   

    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[ListOrders]
    (
    @UserID int
    )
    AS
    SELECT
    Orders.OrderID,
    Cast(sum(OrderContent.BookQuantity*OrderContent.unitcost)as money)as OrderTotalCost,
    Orders.OrderDate
    FROM
    Orders
    INNER JOIN OrderContent ON Orders.OrderID=OrderContent.OrderID
    where Orders.UserID=@UserID
    Orders.UserID=@UserID
    GROUP BY
    UserID,
    Orders.OrderID,
    Orders.OrderDate
      

  3.   

    group by orders.userid,
    Orders.OrderID,
    Orders.OrderDate
    --GROUP BY 未指定ORDERS.USERID (USERID)
    --HAVING 是对结果集过滤,SELECT ... FROM 中未有USERID字段,应加上
      

  4.   

    --HAVING 是对结果集过滤,SELECT ... FROM 中未有USERID字段,应加上
    -------------------------------
    #4楼
    此句搞错了,不用在select中指定
      

  5.   

    错误消息是:消息 208,级别 16,状态 6,过程 ListOrders,第 6 行
    对象名  'dbo.ListOrders' 无效。