Tôi có một truy vấn mà liệt kê các tính năng, dựa trên tình trạng các thành phần và tính sẵn sàngtruy vấn SQL nhân kết quả SUM bởi số lượng của các yếu tố bên trong
SELECT Brand.Id
, Brand.Name
, Brand.Impact
, Brand.Visibility
, Brand.Risk
, SUM(Brand.Impact + Brand.Visibility + Brand.Risk) AS Priority
FROM Brand
LEFT OUTER JOIN Type
ON Brand.Id = Type.FeatureId
LEFT OUTER JOIN Model
ON Type.Id = Model.SubFeatureId
LEFT OUTER JOIN TestingStatus
ON Model.StatusId = TestingStatus.Id
WHERE (Model.IsDeleted = 'False')
AND (Brand.IsDeleted = 'False')
AND (Type.IsDeleted = 'False')
AND (@TeamId = 0 OR Model.TeamId = @TeamId)
GROUP BY Brand.YearId, Brand.Id, Brand.Name, Brand.Impact, Brand.Visibility, Brand.Risk
HAVING (Brand.YearId = @YearId)
kết quả của tôi như sau:
ID Name Impact Visibility Risk Priority
403 Chevy 1 2 3 48
404 Nissan 1 1 1 24
405 Toyota 3 2 1 42
Thay vì
ID Name Impact Visibility Risk Priority
403 Chevy 1 2 3 6
404 Nissan 1 1 1 3
405 Toyota 3 2 1 6
Mỗi thương hiệu trong số này có các mẫu 8, 8 và 7 tương ứng. Điều này có nghĩa là truy vấn của tôi đang làm cho tất cả các truy vấn đó để tính mức độ ưu tiên: Impact*models + Visibility*models + Risk*models
.
Làm cách nào để truy vấn SQL của tôi không thực hiện phép nhân đó?
Cảm ơn
là ưu tiên của bạn chỉ là tổng số tác động, khả năng hiển thị và rủi ro? – Taryn
Vâng @bluefeet đúng vậy. – LanFeusT