Hallo mensen
,
ik heb het volgende probleem:
ik heb deze statement:
SELECT * from procedures
WHERE verwijderd = true
OR majver < (select max(majver) from procedures)
OR (
majver = (select max(majver) from procedures)
AND minver < (select max(minver) from procedures)
);
maar deze is niet helemaal correct. Het idee is dat er een tabel bestaat met procedures, en elke procedure heeft een NR, (die vaker kan voorkomen) en een versie (MAJVER en MINVER). Nu moet hij alle verwijderden terug geven (dat is al klaar) en alle procedures met NIET de hoogste versie. Kortom, van elk procedurenr moeten er een aantal terug komen, behalve de hoogste versie van dat procedurenr.
select max(majver) from procedures
Hier moet dus een select statement komen die mij de hoogste major versie geeft voor de procedurenummer waar hij bij staat. Kortom, als er 10x een procedurenr 4 voor komt, en de hoogste MajVer daarvan is 8, dan moet hij alleen de regel met 8 terug geven in dat select statement.
Ik dacht misschien iets met een GroupBy, maar ik kom er niet uit
Als dat select statementje werkt, dan kom ik er verder zelf wel uit.
ik heb het volgende probleem:
ik heb deze statement:
SELECT * from procedures
WHERE verwijderd = true
OR majver < (select max(majver) from procedures)
OR (
majver = (select max(majver) from procedures)
AND minver < (select max(minver) from procedures)
);
maar deze is niet helemaal correct. Het idee is dat er een tabel bestaat met procedures, en elke procedure heeft een NR, (die vaker kan voorkomen) en een versie (MAJVER en MINVER). Nu moet hij alle verwijderden terug geven (dat is al klaar) en alle procedures met NIET de hoogste versie. Kortom, van elk procedurenr moeten er een aantal terug komen, behalve de hoogste versie van dat procedurenr.
select max(majver) from procedures
Hier moet dus een select statement komen die mij de hoogste major versie geeft voor de procedurenummer waar hij bij staat. Kortom, als er 10x een procedurenr 4 voor komt, en de hoogste MajVer daarvan is 8, dan moet hij alleen de regel met 8 terug geven in dat select statement.
Ik dacht misschien iets met een GroupBy, maar ik kom er niet uit
Als dat select statementje werkt, dan kom ik er verder zelf wel uit.