【发布时间】:2017-03-31 14:18:35
【问题描述】:
我有三个表:
tbl_Publisher [Publisher_ID, addr,account-num,...,city];
tbl_Title [Title_ID, frequency, publisher,.., Publisher_ID];
tbl_Invoice [Invoice_ID, ordered_Date,...,Title_ID];
我想按出版商返回一个标题列表,每个标题都有它包含的发票数量。在一个结果集中。 我正在使用如下存储过程:
PROCEDURE [dbo].[usp_GetTitlesbyPublisher]
-- Add the parameters for the stored procedure here
@PublisherID INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- Insert statements for procedure here
SELECT Title_ID,TitleName,pub_type,Frequency , Holdings ,tbl_Title.publisher ,section ,tbl_Title.Publisher_ID from tbl_Title, tbl_Publisher
where tbl_Title.Publisher_ID = tbl_Publisher.Publisher_ID
and @PublisherID = tbl_Publisher.Publisher_ID
END
如何返回每个 Title 的 Invoice 数量?
【问题讨论】:
-
标记您正在使用的 dbms。该代码是特定于产品的。
-
一个使用SQL Server的存储过程,我加了需要的标签。
-
但是我没有看到 sql-server 标签。
-
我在上面的表格中看不到足够的信息,但您正在寻找的是 GROUP BY...。我假设 INVOICE_ID 在每个表格中。您需要在 SELECT 中添加 COUNT(INVOICE_ID) 并以 GROUP BY 结尾并列出您选择的所有列。
-
您应该养成使用 ANSI-92 样式连接的习惯,它们已经存在 25 年了。 sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/…
标签: c# sql sql-server database stored-procedures