2017-09-25 46 views
1

问候我试图总结每笔交易的费用值。计算总和,计数在许多到很多

关联表。

**Assoc table schema** 


    | PK_id | FK_transaction | FK_Expense | 
    |-------|----------------|------------| 
    |  1 |    1 |   85 | 
    |  2 |    2 |   81 | 
    |  3 |    3 |   77 | 
    |  4 |    4 |   83 | 
    |  5 |    5 |   84 | 
    |  6 |    6 |  105 | 
    |  7 |    7 |  104 | 
    |  8 |    8 |   71 | 
    |  9 |    8 |   88 | 
    | 10 |    8 |   90 | 

事务表

**Transaction table schema** 

| PK_id | type | value | confirmed_value | 
|-------|------|-------|--------------------| 
|  1 | 1 | 3.2 |    0 | 
|  2 | 1 | 23.2 |    0 | 
|  3 | 1 | 33.2 |    0 | 
|  4 | 1 | 43.2 |    11.00 | 
|  5 | 1 | 53.2 |    0 | 
|  6 | 1 | 63.2 |    0 | 
|  7 | 1 | 73.2 |    0 | 
|  8 | 1 | 83.2 |    66.00 | 
|  9 | 1 | 93.2 |    0 | 
| 10 | 1 | 133.2 |    77.00 | 
| 11 | 1 | 123.2 |    0 | 

笔开支表

| PK_id | value | 
|-------|-------| 
| 85 | 3.2 | 
| 81 | 23.2 | 
| 77 | 33.2 | 
| 83 | 43.2 | 
| 84 | 53.2 | 
| 105 | 63.2 | 
| 104 | 73.2 | 
| 71 | 83.2 | 
| 88 | 93.2 | 
| 90 | 133.2 | 

结果::

| PK_id | value | confirmed_value | 
|-------|-------|-----------------| 
|  1 | 3.2 |    0 | 
|  2 | 23.2 |    0 | 
|  3 | 33.2 |    0 | 
|  4 | 43.2 |    11 | 
|  5 | 53.2 |    0 | 
|  6 | 63.2 |    0 | 
|  7 | 73.2 |    0 | 
|  8 | 83.2 |    66 | 
|  8 | 93.2 |    66 | 
|  8 | 133.2 |    66 | 

期望 - 前计算(只是为了给ü的想法)

| PK_id | value | confirmed_value | 
|-------|-------|-----------------| 
|  1 | 3.2 |    0 | 
|  2 | 23.2 |    0 | 
|  3 | 33.2 |    0 | 
|  4 | 43.2 |    11 | 
|  5 | 53.2 |    0 | 
|  6 | 63.2 |    0 | 
|  7 | 73.2 |    0 | 
|  8 | 309.6 |    66 | 

全部期望的结果

计数匹配值计数不匹配COUNT(confirmed_value =值) 计数条目(confirmed_value!=值)

/\计算确认值 的值? ?总和(transactions.confirmed_value)

和计算值本身

Should be a row result (example) 
======================================================================================================================= 
MATCHED | NOT_MATCHED | SUM(of values) | COUNT(of confirmed equal to value) | COUNT(of confirmed ! equal to value) 
======================================================================================================================= 
1  | 10  | 3003.22  |   3       | 10 
======================================================================================================================= 

SQL小提琴:http://sqlfiddle.com/#!9/2ab102/9

感谢您的任何提示

回答

0

尝试此查询 -

SELECT transactions.PK_id, 
     SUM(expenses.value), 
     transactions.confirmed_value 
FROM `assoc` 
JOIN `expenses` ON `assoc`.`FK_Expense` = `expenses`.`PK_id` 
JOIN `transactions` ON `assoc`.`FK_transaction` = `transactions`.`PK_id` 
GROUP BY transactions.PK_id, 
     transactions.confirmed_value 

小提琴演示 - http://sqlfiddle.com/#!9/2ab102/14