【发布时间】:2017-07-12 22:43:19
【问题描述】:
我在哪里创建报告时遇到问题,我需要加入两个无法加入的表。我确实找到了他们可能加入的方法,但这很复杂。
有一个表 A,其中包含一个名为 select_criteria 的列。以下是它包含的 3 个值的一些示例:
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' )
在表 B 中,我有一个名为 Tuition_exemption 的列,其中包含如下值:
EMPFT
EMPPT
PART50
在A表一栏的整个数值的尾部,有与B表数值相匹配的学费减免代码。
有没有一种方法可以使用 MSSQL 来解析 select_criteria 中长语句中的代码,以便它们与表 B 中的代码完美匹配?这是我对连接表 A 和表 B 的方法的想法,就像我需要做的那样。另一个复杂之处是 select_criteria 和 Tuition_exemption 值之间存在 1:many 的连接,但 Tuition_exemption 值和 select_criteria 值之间存在 1:1 的连接。
所以最后,在一个示例中,两个表之间的连接应该打印两次相同的 select_criteria 值(我从表 A 引用上面列表中的第一个值),但是在这两行中,两个不同的学费豁免值(EMPFT 和 EMPPT)。或者在表 A 示例 2 的情况下,它会打印一次并匹配 PART50 一次。
我被困在这里。我有一个语句成功获取了我想要的 select_criteria 值:
SELECT select_criteria
WHERE (
select_criteria LIKE '%EMPFT%' OR
select_criteria LIKE '%EMPPT%' OR
select_criteria LIKE '%PART50%' OR
)
但我需要做的是这个。当它获取我想要的 select_criteria 值时,我想将它匹配的代码打印到此表中的新列。这些代码是表 B 中的值,如“EMPFT”、“EMPPT”和“PART50”。这就是为什么我想基本上从 select_criteria 中解析代码,并将它们打印到表 A 的新列中。这样表 A 和表 B 就有一个匹配的值,我编写运行我的报告。我只是现在不知道如何在 SQL 中做到这一点。我有点了解 Perl,但希望在 SSMS 2012 中完成所有这些工作。
感谢您的帮助!
拜博
【问题讨论】:
标签: sql parsing join ssms ssms-2012