私はBIRTと一緒に仕事を始めましたが、なぜこれが起こっているのか分かりません。BIRTのSelect文は、MySQLワークベンチとは異なる(そして間違った)出力を与えます
私はBIRTホームページからMySQLワークベンチでサンプルデータを使用しています。 私がしたかったのは、どの顧客が最良のものであるかを示すグラフを表示して、私に最も多くの金を払ったことです。そのためには、顧客からのすべての支払いを一緒に追加する必要があります。これはMySQLワークベンチでうまく動作しますが、BIRTプラグインは間違った結果を返します。
私はWorkbenchとBIRTで同じSQL文を持っていますが、その解決策は異なります。
BIRTはないように思え、私は(!正しいです)、結果としてこれを取得するワークベンチで
Select * from(
select sum(CLASSICMODELS.PAYMENTS.AMOUNT) as TOTAL_AMOUNT, CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER,
CLASSICMODELS.CUSTOMERS.CUSTOMERNAME
from CLASSICMODELS.PAYMENTS, CLASSICMODELS.CUSTOMERS
where CLASSICMODELS.payments.customerNumber = CLASSICMODELS.customers.customerNumber
group by CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER, CLASSICMODELS.CUSTOMERS.CUSTOMERNAME
) as inner_table
where TOTAL_AMOUNT > 75000
"sum()"関数を適用するときに値を正しく追加しないでください。誰かがこれについて説明することができますか?たぶん私は私のソリューションに間違ったアプローチをとっているでしょうか?再び - 私は各顧客(彼の番号または名前によって識別される)を見ることができるグラフと、彼が今までに行ったすべての支払いの合計金額を表示したいと思います。
結果が異なる理由はわかりませんが、派生テーブルを使用する必要はありません。代わりに 'WHERE'の後に' HAVING TOTAL_AMOUNT> 75000'を実行するだけです。 – dnoeth
Btw、ClassicModelsモデルの実際のデータを見ると、BIRTの結果は正しいです。顧客112には3つの支払いがあります:14191.12 ,32641.98 ,33347.88 – dnoeth
HAVINGキーワードを使用していただきありがとうございます。私はまだSQLにとって非常に新しいです。 – Vulkanos