app/Statistics/Repository/IndividualRepository.php
private function birthAndDeathQuery(string $sex): Builder
    {
        $query = DB::table('individuals')
            ->where('i_file', '=', $this->tree->id())
            ->join('dates AS birth', static function (JoinClause $join): void {
                $join
                    ->on('birth.d_file', '=', 'i_file')
                    ->on('birth.d_gid', '=', 'i_id');
            })
            ->join('dates AS death', static function (JoinClause $join): void {
                $join
                    ->on('death.d_file', '=', 'i_file')
                    ->on('death.d_gid', '=', 'i_id');
            })
            ->where('birth.d_fact', '=', 'BIRT')
            ->where('death.d_fact', '=', 'DEAT')
            ->whereColumn('death.d_julianday1', '>=', 'birth.d_julianday2')
            ->where('birth.d_julianday2', '<>', 0);

        if ($sex === 'M' || $sex === 'F') {
            $query->where('i_sex', '=', $sex);
        }

        return $query;
    }
private function birthAndDeathQuery(string $sex): Builder
    {
        $query = DB::table('individuals')
            ->where('i_file', '=', $this->tree->id())
            ->join('dates AS birth', static function (JoinClause $join): void {
                $join
                    ->on('birth.d_file', '=', 'i_file')
                    ->on('birth.d_gid', '=', 'i_id');
            })
            ->join('dates AS death', static function (JoinClause $join): void {
                $join
                    ->on('death.d_file', '=', 'i_file')
                    ->on('death.d_gid', '=', 'i_id');
            })
            ->where('birth.d_fact', '=', 'BIRT')
            ->where('death.d_fact', '=', 'DEAT')
            ->whereColumn('death.d_julianday1', '>=', 'birth.d_julianday2')
            ->where('birth.d_julianday2', '<>', 0);

        if ($sex === 'M' || $sex === 'F') {
            $query->where('i_sex', '=', $sex);
        }

        return $query;
    }
private function birthAndDeathQuery ( string $ sex ) : Builder { $ query = DB :: table ( 'individuals' ) -> where ( 'i_file' , '=' , $ this -> tree -> id ( ) ) -> join ( 'dates AS birth' , static function ( JoinClause $ join ) : void { $ join -> on ( 'birth.d_file' , '=' , 'i_file' ) -> on ( 'birth.d_gid' , '=' , 'i_id' ) ; } ) -> join ( 'dates AS death' , static function ( JoinClause $ join ) : void { $ join -> on ( 'death.d_file' , '=' , 'i_file' ) -> on ( 'death.d_gid' , '=' , 'i_id' ) ; } ) -> where ( 'birth.d_fact' , '=' , 'BIRT' ) -> where ( 'death.d_fact' , '=' , 'DEAT' ) -> whereColumn ( 'death.d_julianday1' , '>=' , 'birth.d_julianday2' ) -> where ( 'birth.d_julianday2' , '<>' , 0 ) ; if ( $ sex === 'M' || $ sex === 'F' ) { $ query -> where ( 'i_sex' , '=' , $ sex ) ; } return $ query ; }
Query individuals, with their births and deaths.

@param string $sex

@return Builder
Query individuals with their births and deaths .