我有一个名为summary
的表来记录不同商店(表格)的销售记录,shopA
,shopB
,shopC
,(说我有超过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个表的限制,我该如何解决?感谢。