sql >> Database >  >> RDS >> Sqlserver

SQL Server berekende kolom selecteren uit een andere tabel

Ik weet dat dit antwoord twee jaar te laat komt, maar om iedereen te helpen die googlet en dit bericht vindt:

Het is volkomen legaal om een ​​door de gebruiker gedefinieerde functie te definiëren en deze als berekende waarde te gebruiken. Deze functie kan select-statements uit andere tabellen bevatten.

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

Gebruik vervolgens in uw berekende kolom de uitdrukking dbo.getSumAdViews(PackageId)+MediaSpend zo:

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. Welk MySQL-gegevenstype moet worden gebruikt voor het opslaan van booleaanse waarden

  2. Inleiding tot PL/SQL-verzamelmethoden in Oracle Database

  3. Alle kolommen van de tabel moeten worden geïndexeerd of niet mysql-database?

  4. hoe de begin- en einddatum van alle weken tussen twee datums in SQL-server te krijgen?