“选择查询与分组依据”子句中的“无数据 - 已提取,选择或处理零行”

时间:2014-07-30 16:15:01

标签: mysql sql

执行以下查询时,我有一条奇怪的MySql警告消息:

  SELECT COURRIER.ID AS ID,
   COURRIER.TYPE AS TYPE,
   COURRIER.NUMERO_COURRIER AS NUMERO_COURRIER,
   COURRIER.ETAT AS ETAT,
   COURRIER.ETAT_TRI AS ETAT_TRI,
   COURRIER.DATE_DEBUT_ETAT AS DATE_DEBUT_ETAT,
   COURRIER.LU AS LU,
   COURRIER.ALERTE AS ALERTE,
   COURRIER.SIGNALE AS SIGNALE,
   COURRIER.CONFIDENTIEL AS CONFIDENTIEL,
   COURRIER.BROUILLON AS BROUILLON,
   COURRIER.TYPE_RETOUR AS TYPE_RETOUR,
   COURRIER.REPONSE_OBLIGATOIRE AS REPONSE_OBLIGATOIRE,
   COURRIER.URGENCE AS URGENCE,
   COURRIER.URGENCE_DESCRIPTION AS URGENCE_DESCRIPTION,
   COURRIER.DATE_ENREGISTREMENT AS DATE_ENREGISTREMENT,
   COURRIER.DATE_RECEPTION AS DATE_RECEPTION,
   COURRIER.DATE_REPONSE_ATTENDUE AS DATE_REPONSE_ATTENDUE,
   COURRIER.DATE_BONNE_RECEPTION_ATTENDUE AS DATE_BONNE_RECEPTION_ATTENDUE,
   COURRIER.DATE_DERNIERE_ACTION AS DATE_DERNIERE_ACTION,
   COURRIER.ACCUSE_RECEPTION_INITIE AS ACCUSE_RECEPTION_INITIE,
   COURRIER.REPONSE_INITIE AS REPONSE_INITIE,       

   COURRIER.DATE_DEBUT_DERNIERE_AFFECTATION AS DATE_DEBUT_DERNIERE_AFFECTATION,
   COURRIER.DOCUMENT_EN_SIGNATURE AS DOCUMENT_EN_SIGNATURE,
   COURRIER.ID_ORGANISME AS ID_ORGANISME,
   GET_TIERS_NOM_COMPLET(COURRIER.ID_TIERS) AS TIERS,
   COURRIER.ID_THEME AS ID_THEME,
   GET_THEME_NOM(COURRIER.ID_THEME) AS THEME_NOM,
   COURRIER.OBJET AS OBJET,
   SERVICE_ACTUEL.ID AS ID_SERVICE_ACTUEL,
   SERVICE_ACTUEL.NOM_COURT AS NOM_COURT_SERVICE_ACTUEL,
   SERVICE_ACTUEL.NOM AS NOM_SERVICE_ACTUEL,
   RESPONSABLE.ID AS ID_RESPONSABLE,
   RESPONSABLE.PRENOM AS PRENOM_RESPONSABLE,
   RESPONSABLE.NOM AS NOM_RESPONSABLE,
   RESPONSABLE.ID_SERVICE AS ID_SERVICE_RESPONSABLE,
   GET_SERVICE_RESPONSABLE_NOM(RESPONSABLE.ID_SERVICE,1) AS     NOM_COURT_SERVICE_RESPONSABLE,
   GET_SERVICE_RESPONSABLE_NOM(RESPONSABLE.ID_SERVICE,0) AS NOM_SERVICE_RESPONSABLE,
   GET_ID_PIECE_JOINTE(COURRIER.ID_FICHIER_PRINCIPAL) AS ID_PIECE_JOINTE_PRINCIPALE,
   COURRIER.NUMERO_COURRIER AS NUMERO_COURRIER_PROPRIETAIRE,
   COURRIER.ID AS ID_RELATION
FROM COURRIER       
  INNER JOIN SERVICE SERVICE_ACTUEL on SERVICE_ACTUEL.ID = COURRIER.ID_SERVICE_ACTUEL
  LEFT JOIN UTILISATEUR RESPONSABLE on RESPONSABLE.ID = COURRIER.ID_RESPONSABLE
  GROUP BY  COURRIER.ID

警告信息为:

“无数据 - 提取,选择或处理零行”

当我删除GROUP BY子句时,警告消息消失。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您似乎应该删除该组,然后执行

SELECT DISTINCT COURRIER.ID作为ID,    COURRIER.TYPE为类型, ...

有效地,DISTINCT正在按所有列进行分组。我在计算机上没有MySQL,但至少在SQL服务器上,如果我尝试做类似你的查询,我得到了

Msg 8120,Level 16,State 1,Line 1 列(列名)在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。