1

好的,我正在尝试比较两个表,然后从三分之一的名称中输入一个列表,以生成前 10 天的总值。查询运行,但给我一个 NULL 结果,只有一个结果。如果我删除 DATE_ADD 并将其替换为数据库中的真实日期并为 left 子句输入一个值而不是使用子查询,我确实得到了我正在寻找的特定日期。我想做的是创建一个名称列表,其中包含当天和过去 10 天的值。我确信我做的不对,所以任何帮助都会受到赞赏,因为我对此很陌生。简单的查询很容易,但像这样复杂的东西对我来说是新的。

select sum(t.price) from td.trs as t
inner join td.order as o on o.trsid=t.id
inner join pts.product as p on p.id=o.grp_id
where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY)
and left(t.mfgid,3) IN (select name from name.list);
4

2 回答 2

1

change

where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY)

to

where t.invoice_date >= DATE_ADD(CURRENT_DATE(),INTERVAL -10 DAY)
于 2012-11-26T20:25:18.593 回答
0

您可能没有得到任何结果,因为您正在执行DATE_ADDCURRENT_DATE()这将为您提供 10 天后的日期。如果您想获取过去 10 天的所有项目,请使用

WHERE t.invoice_date BETWEEN CURRENT_DATE() AND DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)
于 2012-11-26T20:28:53.470 回答