我有这个查询,它返回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);
在列中,date1的格式为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
答案 0 :(得分:1)
假设你在表格中有一个名为'partid'的列,它将是这样的:
select partid,sum(sales)
from
TABLE2
where
Date1 between DATEADD(MONTH,-11,Date1) and DATEADD(MONTH,0,Date1);
group by partid
答案 1 :(得分:0)
在表2中,其他列是什么?具体是表中确定的产品名称?
我非常确定你需要的是最后的Group By声明。像
这样的东西SELECT productName,sum(sales)
FROM table 2
WHERE date 1 between DATEADD(MONTH,-11,Date1) and DATEADD(MONTH,0,Date1)
GROUP BY productName
答案 2 :(得分:0)
两个日期计算字段之间的值的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`";
答案 3 :(得分:0)
如果您需要在这两个日期之间按产品划分每个日期的值的总和,则应将日期和产品字段作为一组添加;
onPostExecute()