Thank you Lorenz, let me try it. In my situation, the important is high
score so even if is of multiple students, does not matter.

If I run the query for each subject, the QueryExecution and Resultset will
also be  separate or just two queries with same QueryExecution and
Resultset?

On Fri, Jan 27, 2017 at 2:33 PM, Lorenz B. <
buehm...@informatik.uni-leipzig.de> wrote:

> Don't make it more complicated as necessary. Simply run the query for
> each of your subjects. Otherwise something like
>
> SELECT ?subject ?student ?topScore WHERE {
>   {
>
>         SELECT ?subject (MAX(?score) AS ?topScore) WHERE
>         {  VALUES ?subject {dd:EnglishScore dd:MathScore}
>            ?student ?subject ?score .
>         } GROUP BY ?subject
>   }
>     ?student ?subject  ?topScore .
>
> }
>
> could work - it's untested
>
> Don't forget that there can be more than one student with the highest
> score per subject.
>
> > Sorry Lorenz I did not check stack overflow as the response there comes
> > very late. Therefore I prefer Jena mailing list because here the response
> > comes quickly.
> >
> > It is the query in plain text: If I want to include another subject high
> > score and its student, then how can I add it?
> >
> >
> > SELECT ?student ?topScore WHERE {
> >   {
> >
> >         SELECT (MAX(?score) AS ?topScore) WHERE
> >         {
> >           ?student dd:Englishscore ?score .
> >         }
> >
> >     }
> >     ?student dd:Englishscore  ?topScore .
> >
> > }
> >
> > On Fri, Jan 27, 2017 at 1:04 PM, Lorenz B. <
> > buehm...@informatik.uni-leipzig.de> wrote:
> >
> >> I tried to help you on StackOverflow, but no response from your side and
> >> you posted something that can't compile in Java.
> >>
> >> Moreover, and that's a really sad point, you posted a different query
> >> there, without the Mathscore triple patterns...
> >>
> >> Off-topic: It would be good if you close the question there if you found
> >> the solution, that's one of the expected behaviors on a platform like
> >> StackOverflow.
> >>
> >>
> >> More comments, your query asks for the top English score - your message
> >> tells the user that it's the top Physics score...
> >>
> >> And the exception is quite obvious, you called next() twice on a
> >> resultset which might only return one student with the highest score.
> >>> Hello, this is the query. How can we add high score of another subject
> >> like
> >>> Mathsscore, I simply add Mathscore after Englishscore, but not working
> >>>
> >>> "SELECT  *  +
> >>>
> >>>                    " WHERE {" + " {"+ "select  (max(?score) as
> >> ?highScore)"
> >>> + " { ?student dd:Englishscore ?score" +  "  ?student2 dd:Mathsscore
> >>> ?score2"
> >>> " }" +
> >>> "  } " +
> >>>         "?student dd:Englishscore ?highScore"   +     " ?student2
> >>> dd:Mathsscore ?score2"
> >>>
> >>>
> >>>           "}";
> >>>
> >>> On Thu, Jan 26, 2017 at 6:13 PM, javed khan <javedbtk...@gmail.com>
> >> wrote:
> >>>> I am sorry Rob, I have posted this issue on Stack overflow yesterday,
> >> and
> >>>> I thought I have posted the details here.
> >>>> Sorry and the problem is solved as I used QuerySolution in while loop.
> >>>>
> >>>> Thank you
> >>>>
> >>>> On Thu, Jan 26, 2017 at 5:12 PM, Rob Vesse <rve...@dotnetrdf.org>
> >> wrote:
> >>>>> Once again you have failed to provide a minimal complete example.
> This
> >>>>> means the minimal code needed to reproduce the problem and any extra
> >>>>> resources needed e.g. your data. Complete means that your code should
> >> be
> >>>>> able to be copied and pasted and run.
> >>>>>
> >>>>> http://stackoverflow.com/help/mcve
> >>>>>
> >>>>> Note you haven’t actually told us what the problem is i.e. What is
> the
> >>>>> specific error message you got. It gets an exception is not a problem
> >>>>> statement!
> >>>>>
> >>>>>  We have been telling you this for weeks, if you are not actually
> going
> >>>>> to make an effort then people are going to stop trying to help you
> >>>>>
> >>>>> Rob
> >>>>>
> >>>>> On 26/01/2017 13:06, "javed khan" <javedbtk...@gmail.com> wrote:
> >>>>>
> >>>>>     *The following query works *   :
> >>>>>
> >>>>>     "SELECT  ?student ?highScore " +
> >>>>>
> >>>>>                        " WHERE {" + " {"+ "select  (max(?score) as
> >>>>> ?highScore)"
> >>>>>     + " { ?student dd:Englishscore ?score" +
> >>>>>     " }" +
> >>>>>     "  } " +
> >>>>>             "?student dd:Englishscore ?highScore"   +
> >>>>>
> >>>>>
> >>>>>               "}";
> >>>>>
> >>>>>                  Query query2 = QueryFactory.create(queryString2);
> >>>>>     QueryExecution qexec = QueryExecutionFactory.create(query2,
> >> model2) ;
> >>>>>     ResultSet results2 = qexec.execSelect() ;
> >>>>>
> >>>>>           Literal r= results2.next().get("highScore").asLiteral();
> >>>>>        String ss= r.getLexicalForm();
> >>>>>        JOptionPane.showMessageDialog(null,"High score of Physics
> >> is"+s +
> >>>>> "by
> >>>>>     Student");
> >>>>>
> >>>>>     This query now works but when I include also the student name, it
> >>>>> gives me
> >>>>>     exception again.
> >>>>>
> >>>>>      * Resource r2= results2.next().get("student").asResource();*
> >>>>>     *       String s=r2.toString();*
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >> --
> >> Lorenz Bühmann
> >> AKSW group, University of Leipzig
> >> Group: http://aksw.org - semantic web research center
> >>
> >>
> >>
> --
> Lorenz Bühmann
> AKSW group, University of Leipzig
> Group: http://aksw.org - semantic web research center
>
>

Reply via email to