Sql server 从SQL Server列中删除相同的数据
我想问一些关于我的问题:Sql server 从SQL Server列中删除相同的数据,sql-server,Sql Server,我想问一些关于我的问题: SELECT a.Parent_Barcode,a.Parent_ItemBOM, a.Child_ItemChildNo, b.WorkCenter, b.OperationNo, b.OperationDesc FROM @T_BOM a LEFT JOIN ROUTING b ON a.Parent_ItemBOM = b.itemno WHERE a.parent_itembom IN (SELECT itemno
SELECT
a.Parent_Barcode,a.Parent_ItemBOM, a.Child_ItemChildNo,
b.WorkCenter, b.OperationNo, b.OperationDesc
FROM
@T_BOM a
LEFT JOIN
ROUTING b ON a.Parent_ItemBOM = b.itemno
WHERE
a.parent_itembom IN (SELECT itemno FROM routing)
ORDER BY
b.operationno
结果是:
|BARCODE1 |RK2/7350/7357-4.40-850/XX69/7303FFB |R7350/7357-4.40-850 | 8050|50.000000| COGPAD RCVS
|BARCODE1 |RK2/7350/7357-4.40-850/XX69/7303FFB |FXX69/7303FFB-1245 | 8050|50.000000| COGPAD RCVS
|BARCODE1 |P-ARRGY5704-9.3-850-RE5 |F3W/7303FFB-1250 | 8060|60.000000| BUILDING RCVS
|BARCODE1 |P-ARRGY5704-9.3-850-RE5 |R7350/7357-1.40-850 | 8060|60.000000| BUILDING RCVS
|BARCODE1 |P-ARRGY5704-9.3-850-RE5 |E1020 | 8060|60.000000| BUILDING RCVS
|BARCODE1 |P-ARRGY5704-9.3-850-RE5 |RK2/7350/7357-4.40-850/XX69/7303FFB | 8060|60.000000| BUILDING RCVS
|BARCODE1 |SL-ARRGY5704-18.2X9.3X31X842+N |P-ARRGY5704-9.3-850-RE5 | 8070|70.000000| CURING RCVS
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8080|80.000000| CUTTING RCVS
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8081|81.000000| SANDING
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8082|82.000000| POC RCVS
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8090|90.000000| INSPECTION RCVS
=======================================================================================
|BARCODE2 |RK2/7350/7357-4.40-850/XX69/7303FFB |R7350/7357-4.40-850 | 8050|50.000000| COGPAD RCVS
|BARCODE2 |RK2/7350/7357-4.40-850/XX69/7303FFB |FXX69/7303FFB-1245 | 8050|50.000000| COGPAD RCVS
|BARCODE2 |P-ARRGY5704-9.3-850-RE5 |F3W/7303FFB-1250 | 8060|60.000000| BUILDING RCVS
|BARCODE2 |P-ARRGY5704-9.3-850-RE5 |R7350/7357-1.40-850 | 8060|60.000000| BUILDING RCVS
|BARCODE2 |P-ARRGY5704-9.3-850-RE5 |E1020 | 8060|60.000000| BUILDING RCVS
|BARCODE2 |P-ARRGY5704-9.3-850-RE5 |RK2/7350/7357-4.40-850/XX69/7303FFB | 8060|60.000000| BUILDING RCVS
|BARCODE2 |SL-ARRGY5704-18.2X9.3X31X842+N |P-ARRGY5704-9.3-850-RE5 | 8070|70.000000| CURING RCVS
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8080|80.000000| CUTTING RCVS
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8081|81.000000| SANDING
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8082|82.000000| POC RCVS
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |SL-ARRGY5704-18.2X9.3X31X842+N | 8090|90.000000| INSPECTION RCVS
在这个结果中,我有重复的“COGPAD RCV”和四个“BUILDING RCV”值。我只是想消除这一点,所以我只有一个“COGPAD RCV”和“BUILDING RCV”用于每个条形码
我的预期结果:
|BARCODE1 |RK2/7350/7357-4.40-850/XX69/7303FFB |8050|50.000000| COGPAD RCVS
|BARCODE1 |P-ARRGY5704-9.3-850-RE5 |8060|60.000000| BUILDING RCVS
|BARCODE1 |SL-ARRGY5704-18.2X9.3X31X842+N |8070|70.000000| CURING RCVS
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |8080|80.000000| CUTTING RCVS
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |8081|81.000000| SANDING
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |8082|82.000000| POC RCVS
|BARCODE1 |ARRGY5704-18.2X9.3X31X842+N# |8090|90.000000| INSPECTION RCVS
=======================================================================================
|BARCODE2 |RK2/7350/7357-4.40-850/XX69/7303FFB |8050|50.000000| COGPAD RCVS
|BARCODE2 |P-ARRGY5704-9.3-850-RE5 |8060|60.000000| BUILDING RCVS
|BARCODE2 |SL-ARRGY5704-18.2X9.3X31X842+N |8070|70.000000| CURING RCVS
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |8080|80.000000| CUTTING RCVS
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |8081|81.000000| SANDING
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |8082|82.000000| POC RCVS
|BARCODE2 |ARRGY5704-18.2X9.3X31X842+N# |8090|90.000000| INSPECTION RCVS
我怎样才能消除相同的数据呢?实际上,您的结果集有5列。当您查看数据时,您的每一行对于5列的组合都是唯一的 您只希望最后一列具有唯一性。您可以尝试下面的两个查询
SELECT max(a.Parent_ItemBOM)
,max(a.Child_ItemChildNo)
,b.WorkCenter
,b.OperationNo
,b.OperationDesc
FROM @T_BOM a
LEFT JOIN ROUTING b ON a.Parent_ItemBOM = b.itemno
GROUP BY b.WorkCenter
,b.OperationNo
,b.OperationDesc
WHERE a.parent_itembom IN (
SELECT itemno
FROM routing
)
ORDER BY b.operationno
SELECT DISTINCT b.WorkCenter
,b.OperationNo
,b.OperationDesc
FROM @T_BOM a
LEFT JOIN ROUTING b ON a.Parent_ItemBOM = b.itemno
WHERE a.parent_itembom IN (
SELECT itemno
FROM routing
)
ORDER BY b.operationno
实际上,结果集有5列。当您查看数据时,您的每一行对于5列的组合都是唯一的 您只希望最后一列具有唯一性。您可以尝试下面的两个查询
SELECT max(a.Parent_ItemBOM)
,max(a.Child_ItemChildNo)
,b.WorkCenter
,b.OperationNo
,b.OperationDesc
FROM @T_BOM a
LEFT JOIN ROUTING b ON a.Parent_ItemBOM = b.itemno
GROUP BY b.WorkCenter
,b.OperationNo
,b.OperationDesc
WHERE a.parent_itembom IN (
SELECT itemno
FROM routing
)
ORDER BY b.operationno
SELECT DISTINCT b.WorkCenter
,b.OperationNo
,b.OperationDesc
FROM @T_BOM a
LEFT JOIN ROUTING b ON a.Parent_ItemBOM = b.itemno
WHERE a.parent_itembom IN (
SELECT itemno
FROM routing
)
ORDER BY b.operationno
CTE将对您的情况有所帮助。通过WorkCenter、OperationNo和OperationDesc设置RowNumber组,获取RowNumber=1将提供预期结果
CTE将对您的情况有所帮助。按工作中心、OperationNo和OperationDesc设置RowNumber组,获取RowNumber=1将提供预期结果之后的结果应该是什么样子?我们是否要将多行折叠成一行?如果是这样,在当前不同行具有不同值的情况下,应选择什么值?另外,您的查询有五列,但您当前的“结果”只显示了四列。之后的结果应该是什么样子?我们是否要将多行折叠成一行?如果是这样,在当前不同行具有不同值的情况下,应选择什么值?另外,您的查询有五列,但您当前的“结果”只显示了四列。我为同一项目添加另一个字段“条形码”如何?使用max仅显示1个条形码。我为同一项目添加另一个“条形码”字段如何?使用max仅显示1个条形码。非常感谢,它确实有效!!另一件事是,结果可以插入到表或@temp表中吗?非常感谢,它确实有效!!另一件事是,结果可以插入到表或@temp表中吗?