2013-05-20 39 views
1

我有一個表由七個字段的複合主鍵:選擇不重複的記錄不考慮一個場

PK COD_LTN 
PK COD_CANA 
PK COD_FAM_PRO 
PK COD_CTG_PRO 
PK COD_PRO 
PK COD_CFG_PRM_PRO 
PK COD_FAM_PRM_PRO 

我有,例如這兩個記錄:

COD_LTN COD_CANA COD_FAM_PRO COD_CTG_PRO COD_PRO COD_CFG_PRM_PRO COD_FAM_PRM_PRO 
00011 SPO  NF   C01   53  A    PZTR 
00011 SPO  NF   C01   53  B    PZTR 

我想選擇所有不考慮外地COD_CFG_PRM_PRO鮮明的記錄:

SELECT DISTINCT 
     COD_LTN, 
     COD_CANA, 
     COD_FAM_PRO, 
     COD_CTG_PRO, 
     COD_PRO, 
     -- COD_CFG_PRM_PRO, don't consider this 
     COD_FAM_PRM_PRO 
FROM 
     PRM_STATICO_PRO 
WHERE 
     COD_PRO=53; 

當然,它的工作原理:

COD_LTN COD_CANA COD_FAM_PRO COD_CTG_PRO COD_PRO COD_FAM_PRM_PRO 
00011 SPO  NF   C01   53  PZTR 

但我也想選擇,使記錄不同領域COD_CFG_PRM_PRO,那是我想只有一條記錄:

COD_LTN COD_CANA COD_FAM_PRO COD_CTG_PRO COD_PRO COD_CFG_PRM_PRO COD_FAM_PRM_PRO 
00011 SPO  NF   C01   53  A    PZTR 

我怎麼都找不到。

回答

2

您可以通過使用組和最小函數來解決這個 -

SELECT Cod_Ltn, 
     Cod_Cana, 
     Cod_Fam_Pro, 
     Cod_Ctg_Pro, 
     Cod_Pro, 
     MIN(Cod_Cfg_Prm_Pro), 
     Cod_Fam_Prm_Pro 
    FROM Prm_Statico_Pro 
WHERE Cod_Pro = 53 
GROUP BY Cod_Ltn, 
      Cod_Cana, 
      Cod_Fam_Pro, 
      Cod_Ctg_Pro, 
      Cod_Pro, 
      Cod_Fam_Prm_Pro; 

這會給結果作爲你期待..

+0

'MIN'是關鍵,謝謝。 – vulkanino