Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kolom terhitung SQL Server pilih dari tabel lain

Saya tahu jawaban ini datang terlambat dua tahun, tetapi hanya untuk membantu siapa saja yang mencari di Google dan menemukan pos ini:

Sangat sah untuk mendefinisikan fungsi yang ditentukan pengguna dan menggunakannya sebagai nilai yang dihitung. Fungsi ini mungkin berisi pernyataan pilih dari tabel lain.

CREATE FUNCTION dbo.getAdViews(@packageId int)
RETURNS INT
AS
BEGIN
    declare @bav int
    select @bav = BaseAdViews from Packages where PackageId = @packageId
    RETURN @bav
END

Kemudian di kolom yang dihitung, cukup gunakan ekspresi dbo.getSumAdViews(PackageId)+MediaSpend seperti ini:

CREATE TABLE [dbo].[Orders](
    [OrderId] [int] IDENTITY(1,1) NOT NULL,
    [PackageId] [int] NOT NULL,
    [MediaSpend] [int] NULL,
    [TotalAdViews] AS dbo.getAdViews(PackageId)+MediaSpend
) ON [PRIMARY]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membatasi NULL sebagai parameter untuk prosedur tersimpan SQL Server?

  2. Berapa jumlah maksimum baris yang dapat disimpan oleh satu tabel SQL Server?

  3. Hitungan SQL Server lambat

  4. Perbarui Akun Email Basis Data (SSMS)

  5. Bagaimana cara menggunakan JOIN alih-alih UNION untuk menghitung tetangga A OR B?