webForumDet fria alternativet

HSQL syntax

Databaser & SQL

2 svar · 608 visningar · startad av swingman

Medlem sedan jan. 200686 inlägg
Frågan#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?

Medlem sedan mars 20007 896 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_;
Medlem sedan jan. 200686 inlägg
#3

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

248 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)