我有一个“合同”表,用户可以在其中选择合同是“年度”还是“每月”(在MariaDB/phpmyadmin上工作)
数据以下列方式存储:
| 合同|周期|循环|销售价格|产品类别|
| - -|- -|- -|- -|- -|
| 第001章|一个|年度|一万二千元|第一类|
| 002年|一个|按月|千元|2类|
我想生成一个报告,按类别列出每月合同的总和
现在,下面的这个查询工作,但它无用,因为它做的总和“年度”合同连同每月合同
SELECT SUM(contracts.salesprice), `categories`.*
FROM `contracts`
LEFT JOIN `categories` ON `contratos`.`cat_id` = `categories`.`id_cat`
GROUP BY categorias.descripcion_cat;1
我是一个新手,到目前为止,我对INSERT、SELECT、UPDATE、DELETE都很满意;我试着阅读所有关于CASE或IF的文档,但我不知道如何告诉MySQL基于条件进行求和和计算
当CICLE = YEARLY时,则为SALEPRICE /12(以获得月值)
1条答案
按热度按时间a2mppw5e1#
你在
CASE
的轨道上是正确的。下面的代码片段将把你的年销售价格转换成月销售价格:
要在查询中使用它,只需将您的
SUM(...)
替换为该值即可。CASE
语句有几个WHEN
条件。它使用第一个为真的值,如果没有为真的,它将使用ELSE
值(如果你不喜欢0,你可以改变它)。所有这些结果值然后用SUM
求和。CASE
相对于IF
的优势在于,如果您需要针对半年、季度等进行更多计算,则可以根据需要扩展CASE
。