TeisL Skrevet 24. mars 2009 Del Skrevet 24. mars 2009 Hei! Jeg sitter å skal modifisere dette sql statementet, slik at når jeg sorterer på status, skal dette komme opp i stidende rekkefølge. Det er ikke noe problem, men i systemet er det slik at flere brukere kan ha flere statuser etterhvert som de kommer videre i systemet. For å prøve å illustrere hva jeg mener så kan noen av statusene være A,B,C og D. Hvis en person begynner med status A og etterhvert kommer over til status B, er fortsatt status A lagret. Det jeg ønsker er da at det kun er siste (eller da "høyeste") statusen som vises. Slik at en person ikke dukker opp på flere statuser når jeg sorterer på status. SELECT o.idoffer AS idoffer, o.offerref AS refno, status.status AS status, status.statusname AS statusname, org.abbreviation AS abbreviation, org.name AS name, o.offertype AS offertype, o.idorg_offeredby AS idorg, o.durationminweeks AS durationminweeks, o.durationmaxweeks AS durationmaxweeks, o.datefrom AS periodfrom, o.dateuntil AS perioduntil, o.idiaeste_responsible AS idiaeste, i.abbreviation AS iaeste, cn.name AS country, cn.countrycode AS countrycode, so.idstudent AS idstudent, p.firstname AS firstname, p.lastname AS lastname, a.applicants AS applicants FROM offer o JOIN org org ON o.idorg_offeredby = org.idorg LEFT JOIN org i ON o.idiaeste_responsible = i.idorg JOIN country cn ON org.countrycode = cn.countrycode LEFT JOIN student_offer so ON so.idassigned = o.idoffer LEFT JOIN person p ON p.idperson = so.idstudent LEFT JOIN ( SELECT COUNT(idstudent) AS applicants, idoffer FROM app GROUP BY idoffer ) a ON a.idoffer = o.idoffer LEFT JOIN (SELECT idoffer, event, activity, status, statusname, timecreated FROM memo NATURAL JOIN status WHERE timedeleted IS NULL AND status NOT LIKE 'AP' AND status NOT LIKE 'AA' ) status ON (status.idoffer = o.idoffer AND status.event = 'EX' AND status.activity = 'AD' ) WHERE o.offeryear = '" . $session->getYear() . "' AND org.countrycode <> '" . $session->getCountry() . "' AND o.offerref !~* '^(-)?[0-9]+$' AND o.timedeleted IS NULL " . $sqlStatusFilter . " AND status NOT LIKE 'PU' ORDER BY " . $sqlorder . ", status.timecreated DESC Håper noen kan hjelpe med dette, står litt fast. Lenke til kommentar
blackbrrd Skrevet 24. mars 2009 Del Skrevet 24. mars 2009 Der du skal joine inn siste status kjør noe tilsvarende dette: INNER JOIN status ON statusid = (SELECT statusid FROM status WHERE... ORDER BY statusid DESC LIMIT 1) Lenke til kommentar
TeisL Skrevet 30. april 2009 Forfatter Del Skrevet 30. april 2009 Her ble det til at jeg og de andre som jeg utvikler sammen med utviklet et javascript som gjorde jobben, men noe annet som vi også vel fant var at SELECT DISTINCT o.idoffers, ..... måtte skrives noe liggnede: SELECT DISTINCT (o.idoffers),..... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå