2016-03-30 6 views
-1

私はいくつかのテーブル結合を持つ比較的標準的なSQLクエリを持っています。不動産所有)。私は元のフィールド(カテゴリ)の1つの値がOREであるように変更されたことを一覧表示しようとしています。そこに問題がある(1,2,3,4)元の列名が再分類された後に列を生成するT-SQLクエリの元の列名

は、元のカテゴリは「消費者のための1だったと言うが、ローンはOREに行くと、カテゴリは、すべての元のカテゴリが含まれている12 - 私はOREのローンを表示する必要があります。1 & 2.私が試したことは何もありません - クエリの下部にあるwhere句はOREのステータスに関係するさまざまなフィールドが必要であると指定しているため、元のカテゴリではありません。 。

SELECT 
A.ACCTNO 
E.SNAME, 
B.OREO_ID, 
A.OREODATE, 
GC.CATEGORY 
FROM 
DBO.LOAN_SYSTEM AS A 
LEFT OUTER JOIN DBO.ORE AS B 
ON A.OREO_ID = B.OREO_ID 
LEFT OUTER JOIN DBO.LOAN_TITLE AS C 
ON A.OREO_ID = C.OREO_ID AND C.SEQ = 1 
LEFT OUTER JOIN (SELECT * FROM DBO.LOAN_FC WHERE ISDELETED = 0 AND ISDISMISSED IS NULL) AS D 
ON A.OREO_ID = D.OREO_ID 
LEFT OUTER JOIN DBO.TBL_GROUP_CODES GC 
ON E.[GROUP] = GC.GROUP_CODE 
WHERE 
D.FC_ID IS NOT NULL AND C.FORECLOSUREDATE IS NOT NULL AND GC.CATEGORY IN (1,2) --DOESN'T WORK BECAUSE ONCE IN OREO = 12 
AND 
E.STATUS NOT IN (2,8) 

--SUBQUERY GETS ORIGINAL CATEGORY 
SELECT 
B.ACCTNO, C.CATEGORY 
FROM DBO.LOAN_SYSTEM A 
LEFT OUTER JOIN DBO.LOAN_DAILY_INFO B 
ON B.ACCTNO = A.ACCTNO 
AND B.TYPE = A.TYPE 
LEFT OUTER JOIN DBO.TBL_GROUP_CODES C 
ON C.GROUP_CODE = B.[GROUP] 
LEFT OUTER JOIN DBO.TBL_LOAN_TYPES D 
ON D.TYPE = A.TYPE 
WHERE B.STATUS NOT IN (2,8) 
AND C.CATEGORY IN (1,2) 
:;私はサブクエリ(ドンを試した

どれ一般的なガイダンスをいただければ幸いです...彼らは、メインクエリのwhere句「上記」でありトンの仕事ので、ここでは、クエリとその下のサブクエリです

+2

あなたは、あなたの質問にしようとしたクエリを含める。 –

+0

はまた、サンプルデータが含まれ –

+0

キーはトップクエリの最後の3行目です - それはうまくいきませんあなたが推測するように、2番目のクエリが行う元のカテゴリではなく、OREOのトランザクションに関する重要なデータを報告するので、このトップクエリが必要です。 – Craig

答えて

0

私はあなたがここで何をしようとして100%わからないんだけど..しかし、ここでEXISTSあなたが使用する必要があるかもしれません。

SELECT A.ACCTNO, 
     E.SNAME, 
     B.OREO_ID, 
     A.OREODATE, 
     GC.CATEGORY 
FROM DBO.LOAN_SYSTEM AS A 
     LEFT OUTER JOIN DBO.ORE AS B ON A.OREO_ID = B.OREO_ID 
     LEFT OUTER JOIN DBO.LOAN_TITLE AS C ON A.OREO_ID = C.OREO_ID 
               AND C.SEQ = 1 
     LEFT OUTER JOIN (SELECT * FROM DBO.LOAN_FC WHERE ISDELETED = 0 AND ISDISMISSED IS NULL 
         ) AS D ON A.OREO_ID = D.OREO_ID 
     LEFT OUTER JOIN DBO.TBL_GROUP_CODES GC ON D.[GROUP] = GC.GROUP_CODE 
WHERE D.FC_ID IS NOT NULL 
     AND C.FORECLOSUREDATE IS NOT NULL 
     AND EXISTS (
      SELECT 1 
      FROM DBO.LOAN_DAILY_INFO F 
        JOIN DBO.TBL_GROUP_CODES G ON G.GROUP_CODE = F.[GROUP] 
      WHERE F.STATUS NOT IN (2,8) 
        AND G.CATEGORY IN (1,2) 
        AND F.ACCTNO = A.ACCTNO 
        AND F.TYPE = A.TYPE 
     ) 
     AND D.STATUS NOT IN (2,8) 
+0

ありがとうJamie - 私はこれを試してみましょう、と私はそれをより明確にしなかった場合はごめんなさい。私の一番上の質問はうまくいきますが、私が指摘したように、ローンがOREOまたはカテゴリ12に入ると、古いカテゴリ(この場合は1または2が更新されます)が元のカテゴリを参照する必要があります。もう一度、ありがとうございました。 – Craig

関連する問題