2016-12-19 7 views
0

私はデータベースから2つのフィールドを取得する必要があるジャスパーのクエリを処理しています。クエリは次のとおりです。リスとジャスパーSQLの結果が異なる

SELECT DISTINCT b.proto, SUM(type_count) AS count 
FROM view_result a 
JOIN (SELECT DISTINCT photo, count(*) AS type_count 
FROM load_result 
GROUP BY proto) b 
ON a.proto = b.proto 
WHERE id IN 
(SELECT DISTINCT id 
FROM survey 
WHERE survey.file_name IN (list of file names) 
GROUP BY proto 

このクエリはリスで完全に機能します。しかし、私が取る場合、同じクエリをすべきかとジャスパーでそれを使用します。

SELECT DISTINCT b.proto, SUM(type_count) AS count 
FROM view_result a 
JOIN (SELECT DISTINCT photo, count(*) AS type_count 
FROM load_result 
GROUP BY proto) b 
ON a.proto = b.proto 
WHERE id IN 
(SELECT DISTINCT id 
FROM survey 
WHERE ${IN, a.file_name, file_names} 
GROUP BY proto 

を(どこfile_names文字列のリストがあり、それはリスのバージョンであると同じように)、 を私は完全に異なるセットを取得します結果のこれらのクエリは実際には同等ではありませんか?私はまったく同じファイルとすべてを使用しているので、これが機能しない理由がわかりません。

ご協力いただきありがとうございます。

+0

両方のクエリ( 'in'リストの後ろ)に閉じ括弧がないようです。また、 'group by 'を使用している場合は、区別する必要はありません。 – JohnHC

+1

私はJasper Reportsで '$(IN、a.file_name、file_names)'を見たことがありません。 '$ X {IN、a.file_name、file_names}'がサポートされています。 – Viki888

+0

@JohnHC私はそこでうんざりしました、それらのかっこが入っています、私はそれらをコピーするときに逃しました! –

答えて

1

最初のクエリではIN句にsurvey.file_nameが使用され、2番目のクエリではa.file_nameが使用されます。

関連する問題