【问题标题】:SQL - Add up column value singletableSQL - 添加列值单表
【发布时间】:2017-11-03 10:46:15
【问题描述】:

我有一张这样的桌子

Id|purchase_date | Purchase_price
1 |02-May-17     |$10.00
2 |02-May-17     |$20.00
3 |02-May-17     |$30.00

我想编写一个查询,其中所有purchase_price 的总和将根据purchase_date 计算。 有人可以建议查询吗?

【问题讨论】:

  • 首先弄清楚你使用的是哪个RDBMS;不要存储“$”,并使用日期数据类型存储日期。
  • 您能否展示您的预期结果,以确保答案最符合您的要求。

标签: php mysql sql-server database


【解决方案1】:

你可以用 groupby 子句试试这个

select sum(replace(Purchase_price, '$', '')) as total from tbl group by purchase_date

【讨论】:

  • 嗨 Sunny,我已经尝试过这个,但它不起作用。感谢重播。
  • 您好 Sunny,我已经尝试了编辑后的查询,但每次输出都是 61135.88000000002。即将到来的 ans 不依赖于 purchase_price 值
  • hii @AskitRaina check screenshot 我试过了,效果很好。
  • 成功了..非常感谢!
  • @AskitRaina 但你接受另一个答案很奇怪。
【解决方案2】:

使用 Mysql Replace 函数从价格中删除 $ 然后用户 SUM 后跟 group by 函数类似

SELECT SUM(REPLACE(Purchase_price,'$','')) AS price from tablename group by purchase_date

http://www.w3resource.com/mysql/string-functions/mysql-replace-function.php

【讨论】:

    【解决方案3】:

    假设你去动态货币符号

    SELECT SUM(CAST(SUBSTR(Purchase_price, 2) as DECIMAL(4,2))) FROM tablename GROUP BY purchase_date;
    

    【讨论】:

      猜你喜欢
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多