Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chọn cột được tính toán của SQL Server từ một bảng khác

Tôi biết câu trả lời này đến muộn hai năm, nhưng chỉ để giúp bất kỳ ai sử dụng Google và tìm thấy bài đăng này:

Hoàn toàn hợp pháp khi xác định một hàm do người dùng xác định và sử dụng nó làm giá trị được tính toán. Hàm này có thể chứa các câu lệnh chọn từ các bảng khác.

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

Sau đó, trong cột được tính toán của bạn, chỉ cần sử dụng biểu thức dbo.getSumAdViews(PackageId)+MediaSpend như vậy:

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. T-SQL:Đối lập với nối chuỗi - cách tách chuỗi thành nhiều bản ghi

  2. Cập nhật cột đếm từ dữ liệu trong bảng khác

  3. Chỉ định tên cột làm tham số trong câu lệnh SELECT?

  4. Chức năng tùy chỉnh với ràng buộc kiểm tra SQL Server 2008

  5. Tại sao tôi không thể kết nối với cơ sở dữ liệu mssql của mình bằng PHP?