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. < [email protected]> 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. < > > [email protected]> 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 <[email protected]> > >> 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 <[email protected]> > >> 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" <[email protected]> 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 > >
