sql – 使用另一个表中的数据创建计算列

前端之家收集整理的这篇文章主要介绍了sql – 使用另一个表中的数据创建计算列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个sql Server 2008 R2数据库.该数据库有两个名为Pictures和PictureUse的表.

图片表包含以下列:

  1. Id (int)
  2. PictureName (nvarchar(max))
  3. CreateDate (datetime )

PictureUse表包含以下列:

  1. Id (int)
  2. Pictureid (int)
  3. CreateDate (datetime )

我需要在Picture表中创建一个计算列,它告诉我这张图片被点击了多少次.有什么帮助吗?

解决方法

您可以为此创建用户定义的函数
  1. CREATE FUNCTION dbo.CountUses(@pictureId INT)
  2. RETURNS INT
  3. AS
  4. BEGIN
  5. RETURN
  6. (SELECT Count(id)
  7. FROM PictureUse
  8. WHERE PictureId = @PictureId)
  9. END

然后可以像这样添加计算列:

  1. ALTER TABLE dbo.Picture
  2. ADD NofUses AS dbo.CountUses(Id)

但是,我宁愿为此做一个观点:

  1. CREATE VIEW PictureView
  2. AS
  3. SELECT Picture.Id,PictureName,Picture.CreateDate,Count(PictureUse.Id) NofUses
  4. FROM Picture
  5. JOIN PictureUse
  6. ON Picture.Id = PictureUse.PictureId
  7. GROUP BY Picture.Id,Picture.CreateDate

猜你在找的MsSQL相关文章