我有这个疑问,它返回null:
SELECT
SUM(sales) as [MAT]
from
TABLE2
where
Date1 between CONVERT(VARCHAR(23), DATEADD(MONTH, -11, Date1), 111) and
CONVERT(VARCHAR(23), DATEADD(MONTH, 0, Date1), 111);
在列,日期1格式为YYYY-DD-MM
,这就是为什么我把它转换。
我想从产品(另一场),每个日期的金额这两个日期之间的总和。
--UPDATE--
嗨,我已经改变了格式DATETIME
。 现在,查询如下所示:
SELECT
SUM(sales)as [MAT]
from
TABLE2
where
Date1 between DATEADD(MONTH,-11,Date1) and DATEADD(MONTH,0,Date1);
它显示了我的所有产品的总金额,我想总的每个...任何想法? @DanBracuk
假设你已经得到了在被称为“PARTID”的表中的列,这将是这样的:
select partid,sum(sales)
from
TABLE2
where
Date1 between DATEADD(MONTH,-11,Date1) and DATEADD(MONTH,0,Date1);
group by partid
在表2什么其他列? 特别是在表中标识了产品的名称?
我敢肯定你需要的是在最后一组通过声明。 就像是
SELECT productName,sum(sales)
FROM table 2
WHERE date 1 between DATEADD(MONTH,-11,Date1) and DATEADD(MONTH,0,Date1)
GROUP BY productName
两个日期计算字段之间的值的SQL SUM
$sql = "SELECT `product_field_name`,
SUM(CASE WHEN `DATE1_field_name` BETWEEN '".$MINdate."' and '".$MAXdate."' THEN sales ELSE 0 END) AS 'MAT'
FROM TABLE_name
GROUP BY `product_field_name`";
如果由这两个日期之间的产品需要为每个日期值的总和,你建议立即进行删除添加的日期和产品领域的一组通过;
SELECT
Date1, product, SUM(sales)as [MAT]
from
TABLE2
where
Date1 between DATEADD(MONTH,-11,Date1) and DATEADD(MONTH,0,Date1)
group by Date1, product;