webForumDet fria alternativet

HSQL syntax

2 svar · 606 visningar · startad av swingman

swingmanMedlem sedan jan. 200686 inlägg
#1

hej
skriver jag så här

select count (i.start_),count (i.end_),count (i.key_)
FROM   jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_) ;

så får jag resultat som det ska vara men skriver jag så här

select count (i.start_),count (i.end_),i.key_
FROM   jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_) ;

då får jag inte resultat men jag får ett felmeddelande som säger
java.sql.SQLException: Not in agregate function or group in clause: org.hsqldb.Expression@b10190 in statement [select count (i.start_),count (i.end_),i.key_
FROM jbpm_processdefinition d, jbpm_processinstance i
where (d.id_ = i.processdefinition_)]
Det är hsql syntaxen det handlar. Samma kod fungerar utmärkt i mysql databasen.
hjälp...hur ska man skriva i hsqldb?

SPiNMedlem sedan mars 20005 832 inlägg
#2

Du behöver antagligen gruppera på rätt fält;

select
   count(i.start_), count(i.end_), i.key_
from
   jbpm_processdefinition d, jbpm_processinstance i
group by
   d.id_
where
   d.id_ = i.processdefinition_;
swingmanMedlem sedan jan. 200686 inlägg
#3

Tack...hsql är mycket hårdare med att det man skriver är logiskt correct.

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb