Tworząc aplikację napotkałem na pewien problem problem, otóż aplikacja ma pobierać podsumowanie w pewnym okresie (ustawionym przez użytkownika).
SQL działą poprawnie:
$sql = 'select (select `login` from '.TABLE_USERS.' where '.TABLE_RESULTS.'.`userId`='.TABLE_USERS.'.`id`) as login, sum(`Fills`), sum(`Qty`), `Start_Cash`, sum(`Gross_Realized`), sum(`ECN_LSE_Exch`), sum(`Net_Realized`), (`End_Balance`), sum(`Clear`),sum(`NSCC_LSE_Exe`),sum(`SEC_NFA_LSE_PMT`), sum(`NYSE_TAF`),sum(`NSDQ_LSE_Liq`), (select `name` from '.TABLE_USERS.' where '.TABLE_RESULTS.'.`userId`='.TABLE_USERS.'.`id`), (select `surname` from '.TABLE_USERS.' where '.TABLE_RESULTS.'.`userId`='.TABLE_USERS.'.`id`) from '.TABLE_RESULTS.' where ('; foreach ($usersArray as $userId){ $sql .= ' `userId`=\''.$userId.'\' or'; }
Jest jednak małe ale...
Wartość `Start_Cash` i `End_Balance`, powinny być odpowiednio pierwsza z danego okresu, oraz ostatnia z danego okresu... domyślam się, że oba rozwiązania będą prawie identyczne... jednak mi brakuje pomysłu jak można by to rozwiązać... jestem przekonany, że istnieje coś jak max() min(), jednak dla pierwszego i ostatniego elelementy...
Czyli trzeba by dodać
tylko jak to zrobić...
SELECT `start_cash` FROM '.TABLE_RESULTS.'.`userId`='.TABLE_RESULTS.'.`userId` ORDER BY `dateOfResult` ASC LIMIT 1