我有一張表,其中包含以下條目
表A
id|companyCode|AbroadCode|CompName
1| 1234| 99|BallComp
和另一個表
表B
id|compCode|EmpName
1| 991234|Peter
2| 991234|Thomas
3| 1234|Frank
4| 1234|Marcus
問題是對于表 A 中的每家公司,只有一個條目,如果該公司在國外設有部門,則在 AbroadCode 列中會得到 99。在 TableB 中,每個員工都有一個條目,但根據該人是否在某個部門作業而分開(展開)。我知道這應該以不同的方式設定,但我以這種方式繼承了它,現在我無法在沒有大量作業的情況下更改結構。
我想做的是我想加入表格。所以最后我會得到這個:
id|compCode|EmpName|Compname
1| 991234|Peter |BallComp
2| 991234|Thomas |BallComp
3| 1234|Frank |BallComp
4| 1234|Marcus |BallComp
任何人都可以幫助我進行此查詢嗎?我能夠用兩個不同的查詢(compcode 和 Abroadcode 上的 concat())解決它,但不能在一個查詢中解決。
uj5u.com熱心網友回復:
您可以嘗試以下方法:
宣告的表變數中的一些示例資料
DECLARE @tblA TABLE(id INT,companyCode INT,AbroadCode INT,CompName VARCHAR(100));
INSERT INTO @tblA VALUES(1,1234,99,'BallComp')
,(2,123,324,'Test') ;
DECLARE @tblB TABLE(id INT,compCode INT,EmpName VARCHAR(100));
INSERT INTO @tblB VALUES
(1, 991234,'Peter')
,(2, 991234,'Thomas')
,(3, 1234,'Frank')
,(4, 1234,'Marcus')
,(5, 123,'Test1' )
,(6, 324123,'Test2' );
--查詢
SELECT *
FROM @tblA a
INNER JOIN @tblB b ON b.compCode=a.companyCode
OR b.compCode=CAST(CONCAT(a.AbroadCode,a.companyCode) AS INT);
簡而言之這個想法:
- 我們加入反對平等
comp(any)Code... - ...或反對 AbroadCode 和 companyCode 的組合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/313299.html
