携帯電話番号のリストと、アクティブまたは非アクティブのステータスで構成されるフラット ファイルがあります。したがって、私の仕事は、特定の msisdn の 7 つのテーブルのリストを取得する必要がある SQL クエリを作成することです。 msisdn のステータス。書き込み方法についての提案。
結合を使用できません。
携帯電話番号のリストと、アクティブまたは非アクティブのステータスで構成されるフラット ファイルがあります。したがって、私の仕事は、特定の msisdn の 7 つのテーブルのリストを取得する必要がある SQL クエリを作成することです。 msisdn のステータス。書き込み方法についての提案。
結合を使用できません。
おそらくあなたはこれを使用するでしょうUNION
。
SELECT *
FROM
(
SELECT mobileNo, moileStatus FROM table1
UNION
SELECT mobileNo, moileStatus FROM table2
UNION
SELECT mobileNo, moileStatus FROM table3
UNION
SELECT mobileNo, moileStatus FROM table4
UNION
SELECT mobileNo, moileStatus FROM table5
UNION
SELECT mobileNo, moileStatus FROM table6
UNION
SELECT mobileNo, moileStatus FROM table7
) allMobile
WHERE allMobile.mobileNo = ''
-- OR something like that
ステップ 1: BULK INSERT を実行してテキスト ファイルをロードする
ステップ 2: すべてのテーブルから特定のレコードを取得するmsisdn
ステップ 3: 特定のステップ 1 とステップ 2 の間を結合します。msisdn
疑似コード
CREATE TABLE TempTable
(
MSISDN INT,
MobileNumber VARCHAR (50) NOT NULL,
TheStatus varchar (10) NOT NULL
)
--Step 1:
BULK INSERT TempTable FROM 'D:\InputMobileNumbers.txt' WITH (FIELDTERMINATOR = '","')
-- Step 2:
INSERT INTO #TEMP
SELECT * FROM
(
SELECT MSISDN,MobileNumber FROM Table1 WHERE MSISDN = @MSISDN UNION All
SELECT MSISDN,MobileNumber FROM Table2 WHERE MSISDN = @MSISDN UNION All
.............................................................................
.............................................................................
SELECT MSISDN,MobileNumber FROM Table7 WHERE MSISDN = @MSISDN UNION All
)X
-- Step 3
SELECT tt.MSISDN,tt.MobileNumber,tt.TheStatus
FROM TempTable tt
JOIN #TEMP t ON tt.MSISDN = t.MSISDN
WHERE tt.MSISDN = @MSISDN
DROP TABLE #TEMP
DROP TABLE TempTable
select t1.column1,t1.column2,...,t2.column4,..
from table1 t1
left outer join table2 t2 on t1.column1=t2.column3
left outer join table2 t3 on t2.column1=t3.column2
.....
where t1.active=1 and t2.column2>0 ....
order by t1.column1,.....