3

関連するすべてのフィールドを取得するクエリを投稿しましたが、SUM(af_py_commission)関数はのように問題を引き起こし、最後にゼロを追加してから右端に追加するだけです。

たとえば、答えが45の場合、450が返され、フィールドのデータ形式はfloatです。それ以外の場合、このクエリは完全に機能しています。

同じフィールドで同じ関数を使用し、結合を使用しない単純なクエリを試したので、正常に機能し、正しい回答が得られます。誰かが私がこれで間違っていることを助けることができます>??

SELECT f.af_id AS af_if
   , aff_cust_tbl.af_id AS cu_af_id
   , aff_payment_tbl.af_cust_id AS pym_cus_id
   , SUM(af_py_commission)
FROM aff_tbl AS f
INNER JOIN aff_tbl ON f.af_id = 2
INNER JOIN aff_cust_tbl ON aff_cust_tbl.af_id = 2
INNER JOIN aff_payment_tbl ON aff_payment_tbl.af_id = 2;
4

2 に答える 2

2

内部結合に誤りがあります

これを試して:

SELECT
f.af_id                    AS af_if,
aff_cust_tbl.af_id         AS cu_af_id,
aff_payment_tbl.af_cust_id AS pym_cus_id,
SUM(af_py_commission)
FROM aff_tbl AS f
INNER JOIN aff_tbl as f2
ON f.af_id = 2 AND f2.af_id=2
INNER JOIN aff_cust_tbl
ON aff_cust_tbl.af_id = 2
INNER JOIN aff_payment_tbl
ON aff_payment_tbl.af_id = 2;

編集された行は

 INNER JOIN aff_tbl as f2
 ON f.af_id = 2 AND f2.af_id=2

これを試して:

SELECT f.af_id                    AS af_if, 
       aff_cust_tbl.af_id         AS cu_af_id, 
       aff_payment_tbl.af_cust_id AS pym_cus_id, 
       Sum(af_py_commission) 
FROM   aff_tbl AS f 
       INNER JOIN aff_cust_tbl 
               ON f.af_id = aff_cust_tbl.af_id 
       INNER JOIN aff_payment_tbl 
               ON aff_payment_tbl.af_id = aff_cust_tbl.af_id 
WHERE  f.af_id = 2; 

正しい結果が得られない場合は、ここで合計と事後分析を行わずに試してください...

于 2012-10-14T16:21:30.773 に答える
0

GROUP BYおそらく、集計関数を使用している場合に必要な句が欠落しています。これを試して:

SELECT
f.af_id                    AS af_if,
aff_cust_tbl.af_id         AS cu_af_id,
aff_payment_tbl.af_cust_id AS pym_cus_id,
SUM(af_py_commission)
FROM aff_tbl AS f
INNER JOIN aff_tbl
ON f.af_id = 2
INNER JOIN aff_cust_tbl
ON aff_cust_tbl.af_id = 2
INNER JOIN aff_payment_tbl
ON aff_payment_tbl.af_id = 2;
GROUP BY f.af_id
于 2012-10-14T16:21:15.183 に答える