SQL CTE:避免重复结果

问题描述 投票:0回答:1

我有两个以下形式的CTE:

WITH Migrated12ncs_CTE ( EcnID, EcnReleaseDate, SolutionItemId, 
    SolutionItemRevisionId )
TcBomBopOwned12ncRevs_CTE ( ItemID, ItemRevisionID, ItemRevisionDateReleased )

在我的数据库的内容,如果我运行此SQL查询,我得到以下结果:

enter image description here

这是完整的SQL:

-- All the 12nc revisions that are sent to SAP via an ECN, either Migration ECN or a regular ECN.
WITH Migrated12ncs_CTE ( EcnID, EcnReleaseDate, SolutionItemId, SolutionItemRevisionId )
AS (
  select ecnItem.pitem_id as ECN_Item, wsoECNRev.PDATE_RELEASED as ECNReleasedDate, solutionItem.pitem_id as Solution_Item, solutionItemRevision.pItem_Revision_Id
  from infodba.pItemRevision solutionItemRevision
  inner join infodba.pImanRelation solutionItemsRelation ON solutionItemRevision.puid = solutionItemsRelation.RSECONDARY_OBJECTU
  inner join infodba.pItemRevision ecnRevision ON  ecnRevision.puid = solutionitemsrelation.Rprimary_Objectu
  inner join infodba.pItem solutionItem on solutionItem.puid = solutionItemRevision.rItems_Tagu
  inner join infodba.pItem ecnItem on ecnItem.puid = ecnRevision.rItems_Tagu
  inner join infodba.pWorkspaceObject wsoECN ON wsoECN.puid = ecnItem.puid
  inner join infodba.pWorkspaceObject wsoECNRev ON wsoECNRev.puid = ecnRevision.puid
  inner join infodba.pImanType solutionItemsRelationType on solutionItemsRelationType.puid = solutionItemsRelation.RRELATION_TYPEU
  where wsoECN.pobject_type LIKE 'A5ml_ECN'
  and solutionItemsRelationType.PTYPE_NAME LIKE 'CMHasSolutionItem'
  -- DEBUG and wsoECN.pobject_name LIKE 'Migration ECN'
  order by ecnItem.pitem_id ASC, solutionItem.pitem_id ASC ),

-- All the 12ncs revisions that are now in the Teamcenter database that are owned by TcBomBop
TcBomBopOwned12ncRevs_CTE ( ItemID, ItemRevisionID, ItemRevisionDateReleased )
AS (
  select item.pItem_Id, itemRevision.pItem_Revision_Id, wsoItemRevision.PDATE_RELEASED
  from infodba.pItem item
  inner join infodba.pItemRevision itemRevision ON  item.puid = itemRevision.rItems_Tagu
  inner join infodba.pPOM_Application_Object paoItemRevision ON itemRevision.puid = paoItemRevision.puid
  inner join infodba.pWorkspaceObject wsoItemRevision ON paoItemRevision.puid = wsoItemRevision.puid
  inner join infodba.pPOM_User pomUser ON pomUser.puid = paoItemRevision.ROWNING_USERU
  where pomUser.puser_id LIKE 'tcbombop' )

-- Get all those 12nc revisions that are in the database which are owned by TcBomBop, where an earlier revision under the 12nc Item was either migrated
-- via a Migration ECN or sent to SAP via a normal ECN.
select *
from TcBomBopOwned12ncRevs_CTE
inner join Migrated12ncs_CTE on Migrated12ncs_CTE.SolutionItemId = TcBomBopOwned12ncRevs_CTE.ItemID
where ItemRevisionDateReleased > EcnReleaseDate
and ItemRevisionID > SolutionItemRevisionId
and TcBomBopOwned12ncRevs_CTE.ItemID LIKE 'TOOL.656.34901';

我可以做些什么来确保在查询两个CTE的连接时我最终只得到一个唯一的ItemID,ItemRevisionID - 目前您可以看到,我得到两行具有相同的内容(请注意,我只想选择其中两列)。

我真的想提高我的SQL熟练程度。

谢谢,风

编辑1:根据请求添加结果集的完整结果。

4022.658.59991  AE  20-AUG-18   ECN-600114  01-JUN-18   4022.658.59991  AC
4022.658.60001  AE  20-AUG-18   ECN-600114  01-JUN-18   4022.658.60001  AC
4022.658.59951  AD  20-AUG-18   ECN-600117  01-JUN-18   4022.658.59951  AB
TOOL.656.22331  AB  19-NOV-18   ECN-600133  01-JUN-18   TOOL.656.22331  AA
TOOL.656.30131  AC  19-NOV-18   ECN-600141  01-JUN-18   TOOL.656.30131  AA
TOOL.656.34901  AE  19-NOV-18   ECN-600141  01-JUN-18   TOOL.656.34901  AC
4022.666.82361  AC  04-DEC-18   ECN-600163  09-AUG-18   4022.666.82361  AA
4022.673.06791  AC  19-NOV-18   ECN-600163  09-AUG-18   4022.673.06791  AA
4022.673.06791  AD  18-JAN-19   ECN-600163  09-AUG-18   4022.673.06791  AA
4022.640.56121  AB  19-NOV-18   ECN-600181  06-JUL-18   4022.640.56121  AA
4022.666.82361  AC  04-DEC-18   ECN-600192  18-OCT-18   4022.666.82361  AB
4022.673.06791  AC  19-NOV-18   ECN-600192  18-OCT-18   4022.673.06791  AB
4022.673.06791  AD  18-JAN-19   ECN-600192  18-OCT-18   4022.673.06791  AB
TOOL.656.30131  AC  19-NOV-18   ECN-600200  08-AUG-18   TOOL.656.30131  AB
TOOL.656.34901  AE  19-NOV-18   ECN-600200  08-AUG-18   TOOL.656.34901  AD
ANCI.630.87322  AB  19-NOV-18   ECN-600205  06-JUL-18   ANCI.630.87322  AA
4022.667.18762  AC  13-SEP-18   ECN-600207  06-JUL-18   4022.667.18762  AB
4022.651.66291  AC  04-DEC-18   ECN-600222  12-SEP-18   4022.651.66291  AA
ANCI.481.82264  AB  19-NOV-18   ECN-600227  24-OCT-18   ANCI.481.82264  AA
ANCI.630.61341  AB  19-NOV-18   ECN-600227  24-OCT-18   ANCI.630.61341  AA
TOOL.630.61341  AB  19-NOV-18   ECN-600227  24-OCT-18   TOOL.630.61341  AA
4022.666.94631  AC  04-DEC-18   ECN-600229  14-NOV-18   4022.666.94631  AA
4022.666.94641  AC  04-DEC-18   ECN-600229  14-NOV-18   4022.666.94641  AA
4022.666.94651  AC  04-DEC-18   ECN-600229  14-NOV-18   4022.666.94651  AA
4022.666.94661  AC  04-DEC-18   ECN-600229  14-NOV-18   4022.666.94661  AA
4022.666.94671  AC  04-DEC-18   ECN-600229  14-NOV-18   4022.666.94671  AA
4022.666.94781  AD  04-DEC-18   ECN-600229  14-NOV-18   4022.666.94781  AC
4022.670.99451  AC  04-DEC-18   ECN-600230  14-NOV-18   4022.670.99451  AA
4022.655.46092  AZ  19-FEB-19   ECN-600232  14-NOV-18   4022.655.46092  AX
4022.655.46092  BA  20-FEB-19   ECN-600232  14-NOV-18   4022.655.46092  AX
4022.670.96101  AB  04-DEC-18   ECN-600255  13-AUG-18   4022.670.96101  AA
4022.670.99631  AB  04-DEC-18   ECN-600255  13-AUG-18   4022.670.99631  AA
4022.451.83711  AB  19-NOV-18   ECN-600273  21-JUL-18   4022.451.83711  AA
4022.480.42711  AC  19-NOV-18   ECN-600280  21-JUL-18   4022.480.42711  AB
ANCI.477.04323  AB  19-NOV-18   ECN-600302  23-JUL-18   ANCI.477.04323  AA
4022.471.80311  AB  03-SEP-18   ECN-600330  23-JUL-18   4022.471.80311  AA
ANCI.477.55803  AC  19-NOV-18   ECN-600342  24-JUL-18   ANCI.477.55803  AB
4022.631.25933  AC  20-NOV-18   ECN-600382  31-JUL-18   4022.631.25933  AB
4022.631.45942  AC  19-NOV-18   ECN-600382  31-JUL-18   4022.631.45942  AB
4022.631.25915  AC  19-NOV-18   ECN-600384  31-JUL-18   4022.631.25915  AB
4022.631.25953  AC  19-NOV-18   ECN-600384  31-JUL-18   4022.631.25953  AB
4022.630.36425  AC  19-NOV-18   ECN-600385  31-JUL-18   4022.630.36425  AB
4022.631.25993  AC  19-NOV-18   ECN-600385  31-JUL-18   4022.631.25993  AB
4022.630.36392  AD  19-NOV-18   ECN-600386  31-JUL-18   4022.630.36392  AC
4022.631.45902  AC  19-NOV-18   ECN-600386  31-JUL-18   4022.631.45902  AB
4022.474.20881  AC  19-NOV-18   ECN-600387  31-JUL-18   4022.474.20881  AB
4022.631.25984  AC  19-NOV-18   ECN-600387  31-JUL-18   4022.631.25984  AB
4022.486.91775  AC  19-NOV-18   ECN-600388  31-JUL-18   4022.486.91775  AB
4022.631.25963  AC  19-NOV-18   ECN-600388  31-JUL-18   4022.631.25963  AB
4022.631.25946  AC  19-NOV-18   ECN-600389  31-JUL-18   4022.631.25946  AB
4022.658.41312  AB  19-NOV-18   ECN-600390  31-JUL-18   4022.658.41312  AA
4022.658.41332  AB  19-NOV-18   ECN-600390  31-JUL-18   4022.658.41332  AA
4022.630.36435  AC  19-NOV-18   ECN-600391  31-JUL-18   4022.630.36435  AB
ANCI.477.90553  AB  19-NOV-18   ECN-600394  31-JUL-18   ANCI.477.90553  AA
TOOL.653.53011  AC  06-DEC-18   ECN-600444  01-AUG-18   TOOL.653.53011  AB
4022.621.01043  AC  22-JAN-19   ECN-600446  01-AUG-18   4022.621.01043  AA
REQS.621.13580  AC  19-NOV-18   ECN-600483  02-AUG-18   REQS.621.13580  AB
4022.648.67662  AE  04-DEC-18   ECN-600497  11-OCT-18   4022.648.67662  AC
4022.472.11842  AE  19-NOV-18   ECN-600498  07-AUG-18   4022.472.11842  AD
4022.637.31472  AD  19-NOV-18   ECN-600498  07-AUG-18   4022.637.31472  AC
4022.637.31512  AC  19-NOV-18   ECN-600498  07-AUG-18   4022.637.31512  AB
4022.642.18582  AC  19-NOV-18   ECN-600498  07-AUG-18   4022.642.18582  AB
4022.645.05811  AC  19-NOV-18   ECN-600498  07-AUG-18   4022.645.05811  AB
4022.651.64552  AC  19-NOV-18   ECN-600498  07-AUG-18   4022.651.64552  AB
4022.665.33071  AD  19-NOV-18   ECN-600498  07-AUG-18   4022.665.33071  AC
4022.669.84412  AE  19-NOV-18   ECN-600498  07-AUG-18   4022.669.84412  AC
4022.670.88171  AC  19-NOV-18   ECN-600498  07-AUG-18   4022.670.88171  AB
4022.636.44553  AC  19-NOV-18   ECN-600499  07-AUG-18   4022.636.44553  AB
4022.636.67631  AD  20-NOV-18   ECN-600499  07-AUG-18   4022.636.67631  AC
4022.642.17912  AC  19-NOV-18   ECN-600499  07-AUG-18   4022.642.17912  AB
4022.472.90841  AD  19-NOV-18   ECN-600500  07-AUG-18   4022.472.90841  AC
4022.636.63621  AC  19-NOV-18   ECN-600500  07-AUG-18   4022.636.63621  AB
4022.666.57161  AF  19-NOV-18   ECN-600500  07-AUG-18   4022.666.57161  AD
4022.430.26651  AB  19-NOV-18   ECN-600501  07-AUG-18   4022.430.26651  AA
4022.666.57151  AF  19-NOV-18   ECN-600501  07-AUG-18   4022.666.57151  AD
4022.669.84422  AB  19-NOV-18   ECN-600501  07-AUG-18   4022.669.84422  AA
4022.669.84452  AE  19-NOV-18   ECN-600501  07-AUG-18   4022.669.84452  AC
4022.636.62542  AC  19-NOV-18   ECN-600502  07-AUG-18   4022.636.62542  AB
4022.637.31462  AC  19-NOV-18   ECN-600502  07-AUG-18   4022.637.31462  AB
4022.637.31532  AC  20-NOV-18   ECN-600502  07-AUG-18   4022.637.31532  AB
4022.640.26801  AC  19-NOV-18   ECN-600502  07-AUG-18   4022.640.26801  AB
4022.659.61921  AE  19-NOV-18   ECN-600502  07-AUG-18   4022.659.61921  AD
4022.482.96921  AC  19-NOV-18   ECN-600503  07-AUG-18   4022.482.96921  AB
4022.637.31542  AC  20-NOV-18   ECN-600503  07-AUG-18   4022.637.31542  AB
4022.651.64542  AC  19-NOV-18   ECN-600503  07-AUG-18   4022.651.64542  AB
4022.659.83002  AD  19-NOV-18   ECN-600503  07-AUG-18   4022.659.83002  AC
4022.666.57102  AE  19-NOV-18   ECN-600503  07-AUG-18   4022.666.57102  AC
4022.669.84432  AB  19-NOV-18   ECN-600503  07-AUG-18   4022.669.84432  AA
4022.636.67714  AD  19-NOV-18   ECN-600504  07-AUG-18   4022.636.67714  AC
4022.636.60362  AG  20-NOV-18   ECN-600505  07-AUG-18   4022.636.60362  AF
TOOL.451.13122  AB  19-NOV-18   ECN-600506  07-AUG-18   TOOL.451.13122  AA
TOOL.631.70563  AC  06-DEC-18   ECN-600531  08-AUG-18   TOOL.631.70563  AB
TOOL.638.68291  AB  19-NOV-18   ECN-600538  08-AUG-18   TOOL.638.68291  AA
TOOL.484.85333  AC  19-NOV-18   ECN-600545  08-AUG-18   TOOL.484.85333  AB
REQS.200.40010  AB  04-DEC-18   ECN-600551  08-AUG-18   REQS.200.40010  AA
TOOL.666.96951  AC  05-SEP-18   ECN-600555  08-AUG-18   TOOL.666.96951  AB
TOOL.651.66051  AE  05-SEP-18   ECN-600557  08-AUG-18   TOOL.651.66051  AD
TOOL.656.65155  AF  09-OCT-18   ECN-600557  08-AUG-18   TOOL.656.65155  AE
TOOL.481.55523  AC  19-NOV-18   ECN-600559  08-AUG-18   TOOL.481.55523  AB
TOOL.481.55513  AC  19-NOV-18   ECN-600560  13-AUG-18   TOOL.481.55513  AB
4022.471.98221  AF  19-NOV-18   ECN-600591  15-AUG-18   4022.471.98221  AE
TOOL.200.10472  AB  28-SEP-18   ECN-600591  15-AUG-18   TOOL.200.10472  AA
4022.664.60871  AF  28-SEP-18   ECN-600592  15-AUG-18   4022.664.60871  AE
TOOL.670.53661  AC  19-NOV-18   ECN-600594  15-AUG-18   TOOL.670.53661  AB
TOOL.651.66082  AC  05-SEP-18   ECN-600602  15-AUG-18   TOOL.651.66082  AB
4022.622.47631  AC  04-DEC-18   ECN-600603  23-AUG-18   4022.622.47631  AB
4022.648.67662  AE  04-DEC-18   ECN-600603  23-AUG-18   4022.648.67662  AA
4022.656.19881  AF  04-DEC-18   ECN-600603  23-AUG-18   4022.656.19881  AE
ANCI.631.42433  AB  19-NOV-18   ECN-600604  28-AUG-18   ANCI.631.42433  AA
4022.666.57102  AE  19-NOV-18   ECN-600627  07-SEP-18   4022.666.57102  AD
4022.666.57151  AF  19-NOV-18   ECN-600627  07-SEP-18   4022.666.57151  AE
4022.666.57161  AF  19-NOV-18   ECN-600627  07-SEP-18   4022.666.57161  AE
4022.672.08141  AF  10-DEC-18   ECN-600654  31-AUG-18   4022.672.08141  AD
4022.651.66291  AC  04-DEC-18   ECN-600722  02-OCT-18   4022.651.66291  AB
4022.669.84412  AE  19-NOV-18   ECN-600734  21-SEP-18   4022.669.84412  AD
4022.669.84452  AE  19-NOV-18   ECN-600734  21-SEP-18   4022.669.84452  AD
4022.668.04041  AB  04-DEC-18   ECN-600780  22-OCT-18   4022.668.04041  AA
4022.636.17781  AF  20-FEB-19   ECN-601136  20-DEC-18   4022.636.17781  AC
4022.632.53081  AJ  20-FEB-19   ECN-601137  20-DEC-18   4022.632.53081  AG
ANCI.620.02533  AB  18-JAN-19   ECN-601166  21-DEC-18   ANCI.620.02533  AA
ANCI.622.45562  AB  08-JAN-19   ECN-601166  21-DEC-18   ANCI.622.45562  AA
ANCI.482.57632  AC  08-JAN-19   ECN-601167  21-DEC-18   ANCI.482.57632  AB
ANCI.641.33262  AB  18-JAN-19   ECN-601167  21-DEC-18   ANCI.641.33262  AA
ANCI.647.50132  AB  08-JAN-19   ECN-601167  21-DEC-18   ANCI.647.50132  AA
REQS.668.68860  AC  08-JAN-19   ECN-601167  21-DEC-18   REQS.668.68860  AB
TOOL.666.79811  AC  08-JAN-19   ECN-601167  21-DEC-18   TOOL.666.79811  AA
ANCI.487.22523  AC  08-JAN-19   ECN-601168  21-DEC-18   ANCI.487.22523  AB
ANCI.623.18371  AB  08-JAN-19   ECN-601168  21-DEC-18   ANCI.623.18371  AA
ANCI.668.79151  AD  08-JAN-19   ECN-601168  21-DEC-18   ANCI.668.79151  AC
ANCI.670.25401  AD  08-JAN-19   ECN-601168  21-DEC-18   ANCI.670.25401  AC
TOOL.453.35882  AC  08-JAN-19   ECN-601168  21-DEC-18   TOOL.453.35882  AB
TOOL.620.92001  AB  08-JAN-19   ECN-601168  21-DEC-18   TOOL.620.92001  AA
TOOL.639.88972  AC  08-JAN-19   ECN-601168  21-DEC-18   TOOL.639.88972  AB
ANCI.620.00881  AC  08-JAN-19   ECN-601169  21-DEC-18   ANCI.620.00881  AB
ANCI.622.45972  AB  08-JAN-19   ECN-601169  21-DEC-18   ANCI.622.45972  AA
ANCI.631.21601  AC  08-JAN-19   ECN-601169  21-DEC-18   ANCI.631.21601  AB
ANCI.632.41993  AB  08-JAN-19   ECN-601169  21-DEC-18   ANCI.632.41993  AA
ANCI.646.89201  AB  08-JAN-19   ECN-601169  21-DEC-18   ANCI.646.89201  AA
TOOL.620.01202  AD  18-JAN-19   ECN-601169  21-DEC-18   TOOL.620.01202  AC
TOOL.669.14161  AB  08-JAN-19   ECN-601169  21-DEC-18   TOOL.669.14161  AA
TOOL.435.61514  AC  08-JAN-19   ECN-601170  21-DEC-18   TOOL.435.61514  AB
TOOL.455.11101  AC  08-JAN-19   ECN-601170  21-DEC-18   TOOL.455.11101  AB
TOOL.621.42921  AC  08-JAN-19   ECN-601170  21-DEC-18   TOOL.621.42921  AB
TOOL.621.42931  AB  08-JAN-19   ECN-601170  21-DEC-18   TOOL.621.42931  AA
REQS.630.51780  AB  07-JAN-19   ECN-601217  21-DEC-18   REQS.630.51780  AA
4022.632.53081  AJ  20-FEB-19   ECN-601523  20-FEB-19   4022.632.53081  AH
4022.636.17781  AF  20-FEB-19   ECN-601523  20-FEB-19   4022.636.17781  AD
4022.655.46092  BA  20-FEB-19   ECN-601523  20-FEB-19   4022.655.46092  AZ
sql oracle common-table-expression
1个回答
0
投票

distinctselect之后使用group by关键字为select中的每一列

© www.soinside.com 2019 - 2024. All rights reserved.