sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server beräknad kolumn välj från en annan tabell

Jag vet att det här svaret kommer två år för sent, men bara för att hjälpa alla som googlar och hittar det här inlägget:

Det är helt lagligt att definiera en användardefinierad funktion och använda den som det beräknade värdet. Den här funktionen kan innehålla valda satser från andra tabeller.

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

Sedan i din beräknade kolumn använder du bara uttrycket dbo.getSumAdViews(PackageId)+MediaSpend som så:

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. Importera data från XML-filerna till en MySQL-databas

  2. Hitta datumluckor med mysql

  3. Postgresqls inbyggda COPY-kommando med Parameterized Query

  4. Skapa två arrayer för två fält, håll sorteringsordningen för arrayer synkroniserade (utan underfråga)