首页 > 解决方案 > SQL查询表内连接

问题描述

我遇到了一个问题,即 SKU 通过颜色与正确的行不匹配。csv 行/项目不匹配,并且似乎有很多重复 csv 中的 DIM_1_UPR 字段需要匹配 SKU、BARCODE 和 VENDOR_SKU 字段。我想我搞砸了我的内部连接。

这是一个项目的屏幕截图。你可以看到它显示了 288 行。它多次复制相同的东西,SKU / VENDOR_SKU / BARCODE 基本上来自 USR_MAG_ITEM_EXP 的所有内容都与表的其余部分不匹配或对齐:

在此处输入图像描述

我必须做所有的键还是我可以只使用一个 ITEM_NO?

钥匙

这是我的代码:

SELECT    

dbo.IM_PRC.ITEM_NO, dbo.IM_PRC.REG_PRC, dbo.IM_PRC.PRC_1, 
dbo.IM_PRC.PRC_2,dbo.IM_ITEM.CATEG_COD,
dbo.IM_ITEM.SUBCAT_COD, dbo.IM_ITEM.STAT, dbo.IM_ITEM.LST_COST, 
dbo.IM_ITEM.USER_MAG_NAME, dbo.IM_INV_CELL.LOC_ID, 
dbo.IM_INV_CELL.DIM_1_UPR, dbo.IM_INV_CELL.MIN_QTY, dbo.IM_INV_CELL.MAX_QTY, 
dbo.IM_INV_CELL.QTY_ON_HND, dbo.USR_MAG_ITEM_EXP.SKU, 
dbo.USR_MAG_ITEM_EXP.VENDOR_SKU,
dbo.USR_MAG_ITEM_EXP.BARCOD

FROM dbo.IM_PRC
INNER JOIN dbo.IM_ITEM ON dbo.IM_PRC.ITEM_NO = dbo.IM_ITEM.ITEM_NO 
INNER JOIN dbo.IM_INV_CELL ON dbo.IM_INV_CELL.ITEM_NO = dbo.IM_PRC.ITEM_NO
INNER JOIN dbo.USR_MAG_ITEM_EXP ON dbo.USR_MAG_ITEM_EXP.ITEM_NO = 
dbo.IM_PRC.ITEM_NO

WHERE dbo.IM_INV_CELL.LOC_ID IN ('01', '03', '11', '12', '14', '23') and 
dbo.IM_ITEM.ITEM_NO = 'grohrostbk'
ORDER BY IM_INV_CELL.LOC_ID ASC

编辑:所以做一个完整的外部加入并添加额外的加入语法,亚伦建议给我没有重复!但

如何包含没有颜色的父产品或添加空的 DIM_1_UPR 例如,我希望将顶行包含在主要工作表中 - SELECT top 5 item_no, name, sku, DIM_1_UPR, vendor_sku FROM dbo.USR_MAG_ITEM_EXP WHERE ITEM_NO = 'grohrostbk' 屏幕:图片

标签: sqlsql-server

解决方案


如果您查看屏幕截图屏幕 ,您可以看到第一行的 DIM_1_UPR 为“*”,VENDOR_SKU 为“HROSTBK”,但是当我运行主连接表时,我看不到这条 LINE,因为它有一个 * 并且没有颜色。关于如何包含它的任何想法?


推荐阅读