2016-04-07 9 views
0

Ich versuche, einen maximalen Unterschied zu einem Element in einem XML-Dokument zu finden.Xquery Maximale Differenz zwischen allen Elementen finden

Also, aus den Beispieldaten unten, ID wollen die maximale Differenz von Jahren aus einem Film. Der Unterschied zwischen den Jahren im ersten Film beträgt 2 Jahre, während der maximale Unterschied zum 2. Film 3 Jahre beträgt. Also aus diesen Daten würde ich 3.

<Movie> 
    <Name></Name> 
    <Year>1990</Year> 
    <Language> 
     <Name></Name> 
     <Year>1992</Year> 
    </Language> 
</Movie> 
<Movie> 
    <Name></Name> 
    <Year>2006</Year> 
    <Language> 
     <Name></Name> 
     <Year>2004</Year> 
    </Language> 
    <Language> 
     <Name></Name> 
     <Year>2003</Year> 
    </Language> 
    <Language> 
     <Name></Name> 
     <Year>2006</Year> 
    </Language> 
</Movie> 
+0

Welche Version von XQuery und was haben Sie versucht, so weit? – har07

Antwort

2

Try zurück:

max(//Language/abs(number(../Year)-number(Year))) 
+0

Ah, genau das brauche ich! Es funktionierte für einen kleinen Datensatz, den ich verwendete (25 Elemente oder so). Als ich jedoch versuchte, es auf meinem größeren Datensatz (256000 Elemente) zu verwenden, gibt es 0 zurück. Nicht sicher, ob das daran liegt, dass eine Kuriosität oder etwas in den Daten oder einem anderen Problem ist. –

+0

Also nahm ich "max" heraus und es zeigte mir alle 256000 Unterschiede. Es gab viele Werte über 40, also bin ich mir nicht sicher, warum es 0 als Maximum wählt. Irgendwelche Ideen? –

+0

Keine Ideen. Sie müssen ein reproduzierbares Beispiel veröffentlichen. Wenn Sie einen Produktfehler vermuten, (a) sagen Sie, welches Produkt Sie verwenden, (b) versuchen Sie es an einem anderen Produkt, (c) kontaktieren Sie den Verkäufer. –

Verwandte Themen