这是我正在使用的数据库。
我要做的是将department表引用或联接到project表中。
我应该能够成功地使用以下查询。我需要此查询特定结果
SELECT P.ProjectID, P.ProjectName, P.Department, D.BudgetCode
FROM DEPARTMENT D, PROJECT P
此查询成功执行。但是,我的结果中有重复的值,并且格式不正确。这就是我得到的结果
ProjectID ProjectName Department BudgetCode
1000 2010 Q3 Product Plan Marketing BC-300-10
1000 2010 Q3 Product Plan Marketing BC-100-10
1000 2010 Q3 Product Plan Marketing BC-400-10
1000 2010 Q3 Product Plan Marketing BC-500-10
1000 2010 Q3 Product Plan Marketing BC-800-10
1000 2010 Q3 Product Plan Marketing BC-200-10
1000 2010 Q3 Product Plan Marketing BC-700-10
1000 2010 Q3 Product Plan Marketing BC-600-10
1100 2010 Q3 Portfolio Analysis Finance BC-300-10
1100 2010 Q3 Portfolio Analysis Finance BC-100-10
1100 2010 Q3 Portfolio Analysis Finance BC-400-10
1100 2010 Q3 Portfolio Analysis Finance BC-500-10
1100 2010 Q3 Portfolio Analysis Finance BC-800-10
1100 2010 Q3 Portfolio Analysis Finance BC-200-10
1100 2010 Q3 Portfolio Analysis Finance BC-700-10
1100 2010 Q3 Portfolio Analysis Finance BC-600-10
1200 2010 Q3 Tax Preparation Accounting BC-300-10
1200 2010 Q3 Tax Preparation Accounting BC-100-10
1200 2010 Q3 Tax Preparation Accounting BC-400-10
1200 2010 Q3 Tax Preparation Accounting BC-500-10
1200 2010 Q3 Tax Preparation Accounting BC-800-10
1200 2010 Q3 Tax Preparation Accounting BC-200-10
1200 2010 Q3 Tax Preparation Accounting BC-700-10
1200 2010 Q3 Tax Preparation Accounting BC-600-10
1300 2010 Q4 Product Plan Marketing BC-300-10
1300 2010 Q4 Product Plan Marketing BC-100-10
1300 2010 Q4 Product Plan Marketing BC-400-10
1300 2010 Q4 Product Plan Marketing BC-500-10
1300 2010 Q4 Product Plan Marketing BC-800-10
1300 2010 Q4 Product Plan Marketing BC-200-10
1300 2010 Q4 Product Plan Marketing BC-700-10
1300 2010 Q4 Product Plan Marketing BC-600-10
1400 2010 Q4 Portfolio Analysis Finance BC-300-10
1400 2010 Q4 Portfolio Analysis Finance BC-100-10
1400 2010 Q4 Portfolio Analysis Finance BC-400-10
1400 2010 Q4 Portfolio Analysis Finance BC-500-10
1400 2010 Q4 Portfolio Analysis Finance BC-800-10
1400 2010 Q4 Portfolio Analysis Finance BC-200-10
1400 2010 Q4 Portfolio Analysis Finance BC-700-10
1400 2010 Q4 Portfolio Analysis Finance BC-600-10
我需要得到这个结果
我尝试使用联接:
SELECT P.ProjectID, P.ProjectName, P.Department, D.BudgetCode
FROM DEPARTMENT D
RIGHT JOIN PROJECT P ON P.ProjectID = D.DepartmentName
但我得到一个转换错误
将varchar值“Accounting”转换为数据类型int时,转换失败。
我认为这是因为不可能将varchar转换为int。除非强制转换可以工作。。。
SELECT P.ProjectID, P.ProjectName, P.Department, D.BudgetCode
FROM DEPARTMENT D
RIGHT JOIN PROJECT P ON cast(P.ProjectID AS varchar) = D.DepartmentName
使用石膏,我得到了这个结果
ProjectID ProjectName Department BudgetCode
1000 2010 Q3 Product Plan Marketing NULL
1100 2010 Q3 Portfolio Analysis Finance NULL
1200 2010 Q3 Tax Preparation Accounting NULL
1300 2010 Q4 Product Plan Marketing NULL
1400 2010 Q4 Portfolio Analysis Finance NULL
这几乎就是我想要的,但它为我的预算代码显示了空值,这是不正确的。它们不是空值。
所以在这一点上,我没有主意了。
(顺便说一句,我知道在我的数据库中有一个varchar作为主键,我正试图将该主键与一个int主键连接起来。如果它们是同一类型的,我相信我的连接会起作用)