Gå til innhold

[Løst]Problemer med sql statement - står fast


Anbefalte innlegg

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
Videoannonse
Annonse
  • 1 måned senere...

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...