首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mySQL:寻找用于事务表中日常统计的查询/sql解决方案

mySQL:寻找用于事务表中日常统计的查询/sql解决方案
EN

Stack Overflow用户
提问于 2014-02-02 15:16:20
回答 1查看 594关注 0票数 0

我有一个“交易”表,列有:transactionDateTime,quantity,clientName,sellerName,transactionType (出售/购买).

现在,我在网页(php)的表中列出了所有这些事务。我想在列表中添加,每个交易类型(买卖)每个‘卖方’的每日摘要,。因此,至少我要查找的是使用表执行摘要的查询,最大限度(不确定是否可能)是一个查询,在transactionDateTime转到新的一天后,该查询会执行与以前相同的平面列表,再加上摘要结果。

提前谢谢你。

交易表样本:

transactionDateTime,数量,价格,clientName,stationID,transactionType,卖方,typeID

  • “2014-01-04:44:02”、“2630”、“150.00”、“ClientA”、“60014917”、“buy”、“SellerA”、“2399”
  • “2014-01-04:41:02”、“2630”、“50.00”、“ClientB”、“60014914”、“buy”、“SellerA”、“2398”
  • “2014-01-04:23:45”、“2”、“1900000.00”、“ClientC”、“60014056”、“sell”、“SellerA”、“27918”
  • “2014-01-04 01:08:33”、“3”、“2949499.99”、“ClientD”、“60014056”、“sell”、“SellerB”、“31119”
  • “2014-01-01 15:57:35”、“1”、“168999999.99”、“ClientE”、“60014917”、“sell”、“SellerA”、“19281”
  • “2014-01-01 13:18”、“1”、“38999999.00”、“ClientF”、“60014917”、“sell”、“SellerB”、“14206”

现在,我正在网页上列出几乎未处理的行数据。我想要的应该是每天一样的列表+摘要。比如:

  • 摘要'2014-01-04':SellerA,Buy = (2630*150+2630*50)
  • 摘要'2014-01-04':SellerA,Sell = (2*1900000)
  • 摘要'2014-01-04':SellerB,Sell = (3*2949499.99)
  • “2014-01-04:44:02”、“2630”、“150.00”、“ClientA”、“60014917”、“buy”、“SellerA”、“2399”
  • “2014-01-04:41:02”、“2630”、“50.00”、“ClientB”、“60014914”、“buy”、“SellerA”、“2398”
  • “2014-01-04:23:45”、“2”、“1900000.00”、“ClientC”、“60014056”、“sell”、“SellerA”、“27918”
  • “2014-01-04 01:08:33”、“3”、“2949499.99”、“ClientD”、“60014056”、“sell”、“SellerB”、“31119”
  • 摘要'2014-01-01':SellerA,Sell = (1*168999999.99)
  • 摘要'2014-01-01':SellerB,Sell = (1*38999999.00)
  • “2014-01-01 15:57:35”、“1”、“168999999.99”、“ClientE”、“60014917”、“sell”、“SellerA”、“19281”
  • “2014-01-01 13:18”、“1”、“38999999.00”、“ClientF”、“60014917”、“sell”、“SellerB”、“14206”

在SQL查询中是否可能出现这种情况?或者我应该通过编程方法来做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-02-02 17:13:46

像这样的事情应该能起作用:

代码语言:javascript
运行
复制
/* Your details. */
select 'DETAIL' type_of_record
,      1 sorting_order
,      something_to_order_details_on sorting_order_detail
,      transactionType
,      sellerName
,      transactionDateTime
,      quantity
,      price
from   transactions
union
all
/* Your totals. */
select 'DAILY' type_of_record
,      2 sorting_order
,      null sorting_order_detail
,      transactionType
,      sellerName
,      trunc(transactionDateTime) /* Or whatever MySQL uses to round dates. */
,      sum(quantity) quantity_sum
,      sum(price) price_sum
from   transactions
where  transactionDateTime < trunc(now)
order
by     sorting_order
,      sorting_order_detail
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21512208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档