レポートを作成する際に、2つのテーブルを結合する必要があります。私は彼らが潜在的に参加する方法を見つけましたが、それは複雑です。1つのテーブルの文字列値を解析して別のテーブルの値と結合するにはどうすればよいですか
テーブルAがあり、select_criteriaという列があります。ここで、それが含まれている3つの値のいくつかの例である:内全体の値の末尾に
EMPFT
EMPPT
PART50
:表Bにおいて
SELECT DISTINCT SUM(TRANSCRIPTDETAIL.CREDIT_BILLING) FROM SOMETABLE WHERE (( STUDENTFINANCIAL.TUITION_EXEMPTION = 'EMPFT' ) OR ( STUDENTFINANCIAL.TUITION_EXEMPTION = 'EMPPT' )))
SELECT DISTINCT SUM(TRANSCRIPTDETAIL.CREDIT_BILLING) FROM SOMETABLE WHERE ( STUDENTFINANCIAL.TUITION_EXEMPTION = 'PART50' )
は、私のような値が含まtuition_exemptionという列を有します表Aの列には、表Bの値と一致する授業料免除コードがあります。
MSSQLを使用して、select_criteriaのlong文からコードを解析してコードと完全に一致する方法がありますかテーブルBから?これは私がする必要があるようにテーブルAとテーブルBに参加する方法の私の考えです。もう1つの問題は、select_criteriaとtuition_exemptionの値の間に1:多数の接続がありますが、tuition_exemptionの値とselect_criteriaの値の間に1:1の接続があることです。
最後に、2つのテーブル間の結合は、同じselect_criteria値を2回(表Aの上のリストの最初の値を参照しています)に印刷する必要があります。 2つの異なるtuition_exemption値(EMPFTとEMPPT)。あるいは、表Aの例2の場合、それは一度印刷され、PART50と一度一致する。
ここにはまっています。
SELECT select_criteria
WHERE (
select_criteria LIKE '%EMPFT%' OR
select_criteria LIKE '%EMPPT%' OR
select_criteria LIKE '%PART50%' OR
)
しかし、私は何をする必要がこれです:私は正常に私が欲しいselect_criteria値をつかむ文を持っています。私が望むselect_criteriaの値を取得すると、このテーブルの新しい列に最大一致するコードを出力したいと考えています。これらのコードは、 'EMPFT'、 'EMPPT'、 'PART50'のような表Bの値です。だから私は基本的にselect_criteriaからコードを解析して、テーブルAの新しいカラムにそれらを出力することを考えていたのです。テーブルAとテーブルBは一致する値を持っていて、レポートを書き出します。私はSQLでこれを行う方法を今はしません。私はPerlでよく知っていますが、SSMS 2012でこれをすべて実行したいと考えていました。
ありがとうございました!
byobob
あなたが示唆したように、私はこれを試してみましたが、しかし、それは値を持たない空のテーブルBからcodecolumn、とにtableAで出てくる:LIKEはブール値を返すので、あなたはこれを行うことができるはず – byobob