IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

group by & hsqldb


Sujet :

Hibernate Java

  1. #1
    Invité
    Invité(e)
    Par défaut group by & hsqldb
    Bonjour,

    J'ai un problème lors de mon test unitaire avec la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select staffingday.id, project.id, resource.id, engagement.id, sum (staffingday.rate), staffingday.id, project.id, resource.id, engagement.id, staffingday.day, staffingday.dayOfWeek, staffingday.numWeek, staffingday.rate, staffingday.staffingDescriptionId, project.beginDate, project.endDate, project.engagementId, project.name, project.projectType, resource.capabilityId, resource.employeId, resource.gradeId, resource.name, resource.surname, engagement.beginDate, engagement.capabilityId, engagement.customerName, engagement.endDate, engagement.name, engagement.responsibleId, engagement.wbsAccount
    from Project project, Resource resource, Engagement engagement, Staffing staffing, StaffingDescription staffingdescription, StaffingDay staffingday
    where resource.id = ?
    and resource.id = staffing.resourceId
    and project.id = staffing.projectId
    and project.engagementId = engagement.id
    and staffing.id = staffingdescription.staffingId
    and staffingdescription.id = staffingday.staffingDescriptionId
    and (staffingday.day between ?
    	and ?) group by engagement.name, project.projectType, staffingday.day order by staffingday.day
    mais uniquement avec une base hsqldb, car avec mysql, ça roule.

    Je suppose que ma requête n'est pas conforme hql ou bien que hsqldb ne supporte pas les group by, ce qui m'étonne quand même...

    Savez-vous pourquoi?


    Merci d'avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je me réponds à moi même.

    Apparemment, c'est parce que hsqldb est plus restrictif que mysql sur les clauses group_by.

    En effet, si le group_by est sur project.id, il ne permet que de retourner project.id, ou min(project.name), mais pas directement project.name.

    Problème résolu.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Par défaut
    J'ai exactement le même soucis, mais mon problème c'est que je n'ai aucune solution de contournement...

    Voici à quoi ressemble la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    select 
    NUMERO.VALEUR
    from A.IDENTIFIANT   NUMERO
    where
    NUMERO.CODETYPE = 4
    and A.VALEUR = 'XXX'
     And (EXISTS
    (SELECT 1 FROM A.IDENTIFIANT NUM2
    WHERE NUMERO.VALEUR = NUM2.VALEUR
    AND NUM2.CODETYPE = 4
    GROUP BY NUM2.VALEUR
    HAVING NUMERO.CONVENTIONFK = MAX(NUM2.CONVENTIONFK))
    )
    En gros, dans ma table, j'ai une colonne CONVENTIONFK (numeric), et je veux récupérer l'enregistrement de cette table avec le plus grand CONVENTIONFK (avec pour les deux colonnes VALEUR et CODETYPE, des valeurs données).
    Pour cela, j'ai la contrainte de n'utiliser que la clause WHERE !! (histoire de compliquer la chose!).
    Vous auriez une idée ?

    Merci par avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  2. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21
  3. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo