用于在SQL中返回具有外部标识数的额外列的存储过程

时间:2012-10-01 12:59:29

标签: sql sql-server sql-server-2008

首先,我是SQL的新手,我在设置简单的存储过程时遇到了麻烦。我正在学习SQL,需要一些帮助。

情景:

  • 我有两张表FruitsOranges

  • Fruits包含以下列

    • fruitId
    • fruitSeason
  • Oranges包含以下列

    • organgesId
    • fruitId
    • orangeName

我想创建一个存储过程来返回所有Fruits以及额外的列数,此计数将是Oranges中的水果ID总数。

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

CREATE PROC ProcName
AS 
  SELECT f.Id, f.fruitSeason, COUNT(g.fruitId) 'Total Fruits in Oranges'
  FROM @fruits f 
  LEFT JOIN @Oranges g ON g.fruitId = f.Id
  GROUP BY f.Id, f.fruitSeason

Here is a live demo

答案 1 :(得分:2)

听起来你想要这个:

create procedure yourFruit
as
    select f.fruitid, 
        f.fruitSeason,
        o.cnt TotalFruitOranges
    from fruits f
    left join 
    (
        select count(*) cnt, fruitid
        from oranges
    ) o
        on f.fruitid = o.fruitid
GO