我有一个问题,在哪里创建报告,我需要两个表加入,没有任何方式加入。我确实找到了他们可能加入的方式,但这很复杂。
有表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中的long语句中解析出代码,以便它们完全匹配表B中的代码?这是我想要加入表A和表B的方法,就像我需要做的那样。另一个复杂因素是select_criteria和tuition_exemption值之间存在1:many连接,但tuition_exemption值和select_criteria值之间存在1:1连接。
所以最后,在一个例子中,两个表之间的连接应该打印两次相同的select_criteria值(我在表A的上面列表中引用了第一个值),但在这两个行中,两个不同的tuition_exemption值(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中完成所有这些工作。
感谢您的帮助!
byobob
答案 0 :(得分:0)
您可以使用任何返回布尔值的表达式作为连接条件。既然LIKE返回一个bool,你应该可以这样做:
str_replace("'", "", $row->user_id)