关联SQL中的2个列

时间:2017-08-23 14:53:44

标签: mysql sql image identity-column

SELECT ica.CORP_ID, ica.CORP_IDB, ica.ITEM_ID, ica.ITEM_IDB, 
ica.EXP_ACCT_NO, ica.SUB_ACCT_NO, ica.PAT_CHRG_NO, ica.PAT_CHRG_PRICE, 
ica.TAX_JUR_ID, ica.TAX_JUR_IDB, ITEM_PROFILE.COMDTY_NAME
FROM ITEM_CORP_ACCT ica
,ITEM_PROFILE
WHERE (ica.CORP_ID = 1000) 
AND (ica.CORP_IDB = 4051) 
AND (ica.ITEM_ID = 1000) 
AND (ica.ITEM_IDB = 4051)
AND ica.EXP_ACCT_NO = ITEM_PROFILE.EXP_ACCT_NO

我基本上都在说,因为exp帐户代码是'801500',那么Name应该返回“Miscellaneous Medic ......”。

enter image description here

1 个答案:

答案 0 :(得分:0)

似乎你所展示的东西是不可能的。你在编辑器中编辑了数据吗?您正在使用ica.EXP_ACCT_NO = ITEM_PROFILE.EXP_ACCT_NO加入。因此,EXP_ACCT_NO = 801500的每个条目也应该具有相同的COMDTY_NAME

但是,可能是您的ID实际上不是数字,而且它们是具有空格的字符串(801500__ vs 801500)。但是,由于您没有执行左外连接,这也意味着您在ITEM_PROFILE中有一个具有相同空格的条目。

您还需要正确规范化表格数据(除非这是一个视图)但仍然意味着您有错误的数据。

尝试执行相同的查询,但使用TRIM函数删除空格:it'll override anything the Style does

示例:

SELECT ica.CORP_ID, ica.CORP_IDB, ica.ITEM_ID, ica.ITEM_IDB, 
ica.EXP_ACCT_NO, ica.SUB_ACCT_NO, ica.PAT_CHRG_NO, ica.PAT_CHRG_PRICE, 
ica.TAX_JUR_ID, ica.TAX_JUR_IDB, ITEM_PROFILE.COMDTY_NAME
FROM ITEM_CORP_ACCT ica
,ITEM_PROFILE
WHERE (ica.CORP_ID = 1000) 
AND (ica.CORP_IDB = 4051) 
AND (ica.ITEM_ID = 1000) 
AND (ica.ITEM_IDB = 4051)
AND trim(ica.EXP_ACCT_NO) = trim(ITEM_PROFILE.EXP_ACCT_NO);