我的目标是在现有表中添加另一列,以查看值/条件是否存在于组中,并适当地标记整个组(如果存在)。>
[如果一个团队的一个项目的预算> = 20M或Actual_Spend> = 2.5M,我想将该团队及其所有项目标记为“类别”列中的表1。无论同一团队中的其他项目是否符合此条件。
我将提供带有我的解决方案的SQL小提琴链接:http://sqlfiddle.com/#!18/3ddaf/12/0我将在“ Team”和“ Category”的另外两列中结束,并且不确定它们如何结束。以下是我要寻找的最终结果。我愿意提供比我提供的更好的解决方案。
谢谢您的时间
| Team | ProjectID | Budget | Actual_Spend | State | Category | |------|-----------|----------|--------------|------------|----------| | Cyan | 2 | NULL | NULL | Utah | Table 1 | | Blue | 1 | NULL | 3000000 | California | Table 1 | | Cyan | 1 | 20000000 | 1000000 | Utah | Table 1 | | Blue | 2 | 22000000 | NULL | California | Table 1 | | Red | 1 | 7000000 | 1000000 | Washington | Table 2 | | Red | 2 | 19999000 | 2490000 | Oregon | Table 2 | | Gray | 1 | 19000000 | 2500000 | Utah | Table 1 | | Gray | 1 | 10000000 | 500000 | Utah | Table 1 |
提供创建数据集的代码:
Create Table Source_Data
(
Team varchar(50),
ProjectID INT,
BUDGET INT,
Actual_Spend INT,
State varchar(max),
)
INSERT INTO Source_Data
VALUES
('Blue',1,NULL,3000000,'California'),
('Green',1,20000000,1000000,'Utah'),
('Blue',2,22000000,NULL,'California'),
('Green',2,NULL,NULL,'Utah'),
('Red',1,7000000,1000000,'Washington'),
('Red',2,19999000,2490000,'Oregon'),
('Yellow',1,19000000,2500000,'Utah'),
('Yellow',1,10000000,500000,'Utah');
我的目标是在现有表中添加另一列,以查看值/条件是否存在于组中,并适当地标记整个组(如果存在)。如果团队有一个项目...
我认为您正在寻找窗口功能: