Sql server 创建计算列的帮助(sql server 2008)

Sql server 创建计算列的帮助(sql server 2008),sql-server,calculated-columns,Sql Server,Calculated Columns,你好 在此表上创建计算列时需要一些帮助: USE [ScienceWorksSummary] GO /****** Object: Table [dbo].[Authors_Articles] Script Date: 04/07/2011 10:38:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Authors_Articles]( [IdAuthor] [

你好

在此表上创建计算列时需要一些帮助:

USE [ScienceWorksSummary]

GO

/****** Object:  Table [dbo].[Authors_Articles]    Script Date: 04/07/2011 10:38:55 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Authors_Articles](
    [IdAuthor] [int] NOT NULL,
    [IdArticle] [int] NOT NULL,
    [Part] [float] NULL,
 CONSTRAINT [PK_Authors_Articles] PRIMARY KEY CLUSTERED 
(
    [IdAuthor] ASC,
    [IdArticle] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
计算列(Part)的目的是获得每个作者的一部分作品,这些作者写了同一篇文章。那么比如说,, 如果idAuthor=1,idArticle=1,idAuthor=2,idArticle=1,则每个部分都必须为0.5

谢谢你的帮助

谢谢!!:)将1.0/count()改为ROUND((1.0/count()),2),得到了我所需要的东西!
CREATE TABLE [dbo].[Authors_Articles](
    [IdAuthor] [int] NOT NULL,
    [IdArticle] [int] NOT NULL,
 CONSTRAINT [PK_Authors_Articles] PRIMARY KEY CLUSTERED 
(
    [IdAuthor] ASC,
    [IdArticle] ASC
))
GO
create function dbo.calcPart(@IdArticle int) returns float as
begin
return (Select 1.0/count(*) from [Authors_Articles] where IdArticle = @IdArticle)
end
GO
alter table Authors_Articles add Part as dbo.calcPart(IdArticle)