Ik heb een probleem. (goh, wat raar)
Ik heb een tabel (reports_sc) met onderstaande kolommen:
ID, report_id, status_id, user_id, ChangeDate
Wanneer de status wordt gewijzigd, wordt er niet een update-query maar een insert-query uitgevoerd. Dit is om te kunnen zien wie wanneer voor welk rapport, de status heeft veranderd. Dus om een geschiedenis op te kunnen vragen. Dat is allemaal geen probleem.
Nu moet hij alleen nog wel de goede status weergeven in de lijst van reports. that is, de status die als laatste bij report_id is meegegeven.
Bij MySQL 4.1 zou dit makkelijk kunnen omdat deze sub-query's ondersteund.
De code hieronder zou dan namelijk werken.
Echter ik gebruik 4.0 nog. Ik kan niet naar 4.1 omdat het systeem in een professionele omgeving gebruikt gaat worden. 4.1 is nog in de gamma-release.
Als je de
gebruikt, dan geeft mysql de fout: ERROR 1111: Invalid use of group function
(op zich heel logisch omdat hij niet weet of hij de group by hierbij moet meenemen of niet)
Heeft iemand enig idee hoe ik dit op kan lossen?
Overige info:
Win2k
Microsoft.Net framework versie 1.1.4322
Mysql 4.0.18
Internet Explorer Webcontrols versie 1.0
Ik heb een tabel (reports_sc) met onderstaande kolommen:
ID, report_id, status_id, user_id, ChangeDate
Wanneer de status wordt gewijzigd, wordt er niet een update-query maar een insert-query uitgevoerd. Dit is om te kunnen zien wie wanneer voor welk rapport, de status heeft veranderd. Dus om een geschiedenis op te kunnen vragen. Dat is allemaal geen probleem.
Nu moet hij alleen nog wel de goede status weergeven in de lijst van reports. that is, de status die als laatste bij report_id is meegegeven.
Bij MySQL 4.1 zou dit makkelijk kunnen omdat deze sub-query's ondersteund.
De code hieronder zou dan namelijk werken.
code:
1
2
3
| select * from reports_sc where ID = (
select max(ID) from reports_sc group by report_id
) |
Echter ik gebruik 4.0 nog. Ik kan niet naar 4.1 omdat het systeem in een professionele omgeving gebruikt gaat worden. 4.1 is nog in de gamma-release.
Als je de
code:
1
| where ID = max(ID), |
gebruikt, dan geeft mysql de fout: ERROR 1111: Invalid use of group function
(op zich heel logisch omdat hij niet weet of hij de group by hierbij moet meenemen of niet)
Heeft iemand enig idee hoe ik dit op kan lossen?
Overige info:
Win2k
Microsoft.Net framework versie 1.1.4322
Mysql 4.0.18
Internet Explorer Webcontrols versie 1.0
[ Voor 5% gewijzigd door casapira op 22-09-2004 15:06 ]