以下问题专家是我的代码: 我有不同的表格,我有数据。一种材料MYCODE是不同原料的化合物,如01-,04-和05-。对于他们每个人,我应该找出最后一个日期(最大购买日期),即max(tp_date)。 下面是我的代码:但输出显示第一个材料01-的2个不同日期。我只需要最后一个,所以订单日期为2015-04-22 请帮忙:
select dmprod.pr_codenum pr_co, dmprod.pr_descrip desc,
max(dttpur.tp_date) Date, dmfcur.fc_name CURR,
(select pr_codenum from
dmprod where dmprod.pr_id=dmbom.bo_bomfor)BOM,
max(dmrev.re_name) Rev,
sum(dmbom.bo_quant)*dtpur.pu_price Ext,
dmunit.un_name mea,
dtpur.pu_price price from dmbom, dmprod,
dmrev, dmunit, dttpur, dmfcur, dtpur
where dmbom.bo_prid=dmprod.pr_id
and dttpur.tp_fcid=dmfcur.fc_id
and dmprod.pr_id=dtpur.pu_prid and dttpur.tp_id=dtpur.pu_tpid
and dmbom.bo_unid=dmunit.un_id
and dmrev.re_id=dmbom.bo_reid
and pr_active=1 and (select pr_codenum from dmprod where dmprod.pr_id=dmbom.bo_bomfor)='MYCODE'
group by pr_codenum, pr_descrip, fc_name,un_name,
pu_price, bo_bomfor
,输出为:
pr_co des Date CURR BOM Rev Ext mea price
01- T 2015-04-22 USD MYCODE 01 127 mg 2
01- T 2015-02-26 USD MYCODE 01 290 mg 4
04- M 2016-01-12 EUR MYCODE 01 300 mg 7
05- S 2016-02-25 EUR MYCODE 01 260 mg 4
答案 0 :(得分:0)
请注意最后一列中的不同价格。您在GROUP BY子句中包含pu_price
,因此它为每个不同的价格返回不同的行。如果您想在同一行上对所有01-材料进行分组,而不考虑价格,那么只需将pu_price
从GROUP BY子句中删除。