sql >> Databáze >  >> RDS >> Sqlserver

SQL Server vypočítaný sloupec vyberte z jiné tabulky

Vím, že tato odpověď přichází o dva roky později, ale jen proto, abych pomohla každému, kdo hledá a najde tento příspěvek:

Je naprosto legální definovat uživatelem definovanou funkci a použít ji jako vypočítanou hodnotu. Tato funkce může obsahovat vybrané příkazy z jiných tabulek.

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

Poté ve vypočítaném sloupci použijte výraz dbo.getSumAdViews(PackageId)+MediaSpend jako tak:

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. Problémy s instalací mysql-python (na mac os x lion)

  2. Vraťte hodnoty sloupců před aktualizací pouze pomocí SQL

  3. Získejte data dne v týdnu v časovém období

  4. ORA-1843:neplatný měsíc při aktualizaci záznamu