diff --git a/api/src/Page/Sample.php b/api/src/Page/Sample.php index e82339d10..5497bd33f 100644 --- a/api/src/Page/Sample.php +++ b/api/src/Page/Sample.php @@ -827,7 +827,11 @@ private function get_sub_samples_query($where, $first_inner_select_where = '', $ INNER JOIN shipping sh ON sh.shippingid = d.shippingid INNER JOIN proposal p ON p.proposalid = sh.proposalid - LEFT OUTER JOIN blsampleposition bsp ON bsp.blsampleid = s.blsampleid + LEFT OUTER JOIN + (SELECT * FROM blsampleposition bsp1 WHERE bsp1.blSamplePositionId = + (SELECT MAX(blSamplePositionId) FROM BLSamplePosition bsp2 WHERE bsp2.blSampleId = bsp1.blSampleId AND bsp2.positiontype='dispensing') + ) bsp ON bsp.blSampleId = s.blSampleId + LEFT OUTER JOIN containerqueuesample cqs ON cqs.blsubsampleid = ss.blsubsampleid LEFT OUTER JOIN containerqueue cq ON cqs.containerqueueid = cq.containerqueueid AND cq.completedtimestamp IS NULL @@ -1921,7 +1925,10 @@ function _update_sample() INNER JOIN crystal cr ON cr.crystalid = b.crystalid INNER JOIN protein pr ON pr.proteinid = cr.proteinid LEFT OUTER JOIN diffractionplan dp on dp.diffractionplanid = b.diffractionplanid - LEFT OUTER JOIN blsampleposition bsp ON bsp.blsampleid = b.blsampleid AND bsp.positiontype='dispensing' + LEFT OUTER JOIN + (SELECT * FROM BLSamplePosition bsp1 WHERE bsp1.blSamplePositionId = + (SELECT MAX(blSamplePositionId) FROM BLSamplePosition bsp2 WHERE bsp2.blSampleId = bsp1.blSampleId AND bsp2.positiontype='dispensing') + ) bsp ON bsp.blSampleId = b.blSampleId WHERE pr.proposalid = :1 AND b.blsampleid = :2", array($this->proposalid, $this->arg('sid'))); if (!sizeof($samp))