mysql通过选择和计数多个表来更新摘要表

时间:2016-03-18 11:18:14

标签: mysql select join set

我有一个名为summary的表来记录不同商店(表格)的销售记录,shopAshopBshopC,(说我有超过100个)商店......)
所有表格都有date列 所以,例如

**Summary**
|Date|Total_sales|Shops_sales > 1000dollars|

**ShopA** has 2 columns
|Date      |Sales|

|2016-03-16|1500 |
|2016-03-15|1100 |

**ShopB** has 2 columns
|Date      |Sales|
|2016-03-17|900  |
|2016-03-16|1200 |
|2016-03-15|600  |

**ShopC** has 2 columns
|Date      |Sales|
|2016-03-17|900  |
|2016-03-16|800  |
|2016-03-15|600  |

我想要这样的Summary表......

|Date      |Total_sales|Shops_sales > 1000dollars|
|2016-03-17|1800       |0
|2016-03-16|3500       |2
|2016-03-15|2300       |1

我试过......

update Summary 
set Total_sales= 
(
SELECT ( 
ShopA.Sales+ 
ShopB.Sales+
ShopC.Sales+  
)
AS Total_sales
FROM ShopA
LEFT JOIN ShopB ON ShopA.Date = ShopB.Date
LEFT JOIN ShopC ON ShopA.Date = ShopC.Date
GROUP BY ShopA.Date order by ShopA.Date desc LIMIT 1) order by Date desc LIMIT 1;

但是,我只能更新最新的行而不是所有的行。介于两者之间,如果ShopA没有更新最新销售,请说...

ShopA.Date = 2016-03-16
ShopB.Date = 2016-03-17
ShopC.Date = 2016-03-17

然后,Total_sales计算未正确更新。那么,我该怎样做才能使它正确?

另一个问题是:如何使用Shops_Sale > 1000计算SET美元?我通过使用select找到了许多答案,但很少发现使用SET。我发现JOIN有少于60个表的限制,我该如何解决?感谢。

0 个答案:

没有答案