2015-10-15 61 views
0

考慮這兩個表JPQL聯接與相應值的行查詢數(多列)

AverageGame表

firstGame secondGame thirdGame 
    10   20   30 

人表

Person first second third 
Bob  10  10  30 
Bob  20  10  30 
Bob  10  20  30 

我試圖返回數字的時間bob得分與AverageGame表中的平均值相同(例如,他先得到10個,第二個20個,第三個30個) 結果sh烏爾德是

[2,1,3] 

誰能告訴我如何做到這一點,我只能爲一列做目前,任何幫助是極大的讚賞感謝

+0

你需要'sql'解決方案嗎? –

+0

嗨vkp最好尋找jpql,但SQL可以幫助,因爲我可以嘗試實現,而不是感謝格式化我的問題,你也可以告訴我你是如何做到這一點? – rayself

回答

0

這是一個有點怪異。這裏是我的方法:

http://sqlfiddle.com/#!9/1a3720/2

SELECT person, 
    SUM(IF(`first` = firstGame,1,0)) firstCount, 
    SUM(IF(`second` = secondGame,1,0)) secondCount, 
    SUM(IF(`third` = thirdGame,1,0)) thirdCount 
FROM Person 
LEFT JOIN AverageGame 
ON 1 
GROUP BY person 

但我的問題是你有什麼期望應該發生時AverageGame表有更多然後1個記錄?

+0

我知道這似乎有點奇怪,但只有解決方案的問題。感謝您的幫助,我會在今天晚上發佈。至於你的問題,averageGame表有另一列作爲主鍵,它將表示遊戲的位置,但每個位置的值永遠不會改變 – rayself