MAX日期范围来自多个记录
我有一张如下表格。
Customer Publication Start Date End Date
1 S0048 DLD 01-JAN-2013 15-NOV-2013
2 S0048 DLD 03-MAR-2013 31-DEC-2013
3 S0048 SLD 01-FEB-2013 31-DEC-2013
4 S0048 SLD 01-FEB-2013 30-NOV-2013
5 S0145 DLD 01-JAN-2013 01-MAR-2013
6 S0145 DLD 02-FEB-2013 28-NOV-2013
我需要通过给出结束日期范围来获得结果。
例如:如果输入:end date 01-NOV-2013 to 30-NOV-2013
(搜索谁将在NOV月份到期)
结果应该是
S0145 DLD 02-FEB-2013 28-NOV-2013
请注意,第1和第4条记录不应该在那里,因为他们已经续订了他们的出版物订阅期。
我怎样才能得到这些结果。请帮忙。
亲爱的所有人,我可以获得给定日期范围的数据。但它返回1,4,6。我只需要记录6即可返回。因为我需要为出版物指定客户的最新日期范围。(每个出版物的每个客户的最高日期范围)。至于我的输入(搜索11月结束日期)。由于该客户已将“DLD”期限延长至2,因此在第4条记录中相同,因此不需要1。第4次不需要在记录3中延长(续订)
答案 0 :(得分:0)
您可以将STR_TO_DATE
用于此目的:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date
例如:
SELECT MAX(STR_TO_DATE(`Start Date`, '%d-%b-%Y')) FROM customers
格式说明符(%d
等)列于此处:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
答案 1 :(得分:0)
在Tsql中,您可以编写一个查询:
SELECT T2.customer,
T2.publication,
T2.startdate,
T2.enddate
FROM table1 T2
INNER JOIN (SELECT t1.customer,
Max(t1.enddate) AS MaxEnddate
FROM table1 T1
GROUP BY t1.customer,
T1.publication) T
ON T.customer = T2.customer
AND T.maxenddate = T2.enddate
WHERE T2.enddate BETWEEN '01-NOV-2013' AND '30-NOV-2013'
更新
select hca_agent.account_number agency_code,
hca_sub.account_number subscriber_code,
hp_sub.party_name subscriber_name,
sum(xssl.quantity) qty,
msi.segment1 Publication_name,
xssl.start_date Period_from,
xssl.end_date Period_to-------- I need to get the MAX end date----with the relevant start date
from xxwnl_st_subscr_line xssl
inner join
(
select xssl_inner.subscriber_cust_account_id,
MAX(xssl_inner.end_date) as MaxEnddate
from xxwnl_st_subscr_line xssl_inner
group by xssl_inner.subscriber_cust_account_id) T on
T.subscriber_cust_account_id = xssl.subscriber_cust_account_id
and T.MaxEnddate = xssl.end_date,
xxwnl_supp_temp_line xsl, ----others
xxwnl_supp_temp_header xsh,-----others
hz_cust_accounts hca_sub,----for customer-----
hz_parties hp_sub,----others
mtl_system_items_b msi,----for publication-----
hz_cust_accounts hca_agent,----others
hz_parties hp_agent----others
where xssl.supply_line_id = xsl.supply_line_id
and xsl.header_id = xsh.header_id
and hca_sub.cust_account_id = xssl.subscriber_cust_account_id
and hp_sub.party_id = hca_sub.party_id
and msi.inventory_item_id = xsl.inventory_item_id
and msi.organization_id = oe_sys_parameters.value('MASTER_ORGANIZATION_ID', fnd_profile.value('ORG_ID'))
and hca_agent.cust_account_id = xsh.cust_account_id
and hp_agent.party_id = hca_agent.party_id
and hca_agent.customer_class_code = 'SAGENT' and hca_agent.account_number like '95%'
and xssl.end_date between TO_DATE('&FROM_DATE','DD/MON/RRRR')
AND TO_DATE('&TO_DATE','DD/MON/RRRR')
group by hca_agent.account_number , hca_sub.account_number , hp_sub.party_name , msi.segment1 , xssl.start_date , xssl.end_date
order by 1,2,3