ajax request not returning the result

You are not using the WordPress ajax API correctly, see Ajax in Plugins. Tha action parameter defines a function callback for wp_aja_* action hook, not the name of a file:

<?php
add_action( 'wp_ajax_my_action', 'my_action_callback' );
//Uncomment next line if you want the ajax action enable in the frontend
//add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
function my_action_callback() {
    global $wpdb;
    $name = $_POST['test'];
    $city = $_POST['test1'];
    $date = $_POST['test2'];

    if ($date != '') {
        $enddate = date("Y-m-t", strtotime($date));
        $dates_sql = " AND start_date <= '$date' ";
    }
   if ($city != '' && $city != -1) {
        $destination_sql = "AND venue="$city"";
   }
   if ($name != '' && $name != -1) {
            $origincity_sql = "AND event_name="$name"";
   }

   $query = " SELECT * FROM <table name> WHERE event_id!='' " . $dates_sql . " " . $destination_sql . " " . $origincity_sql . " ORDER BY start_date DESC ";

    $results = $wpdb->get_results($query) or die(mysql_error());    

    foreach ($results as $row) {
        $message  = "<tr><td align='center' id = 'username'>".$row->username."</td><td align='center' id = 'eventname'>".$row->event_name."</td><td align='center' id = 'venue'>". $row->venue."</td><td align='center' id = 'email'>".$row->email."</td><td align='center' id = 'misseddays'>".$row->missed_days."</td><td align='center' id = 'paymentstatus'>".$row->payment_mode."</td><td align='center' id = 'amountpaid'>".$row->amount_paid."</td><td align='center' id = 'amountbalance'>".$row->amount_balance."</td><td align='center' id = 'mailsent'>".=$row->mail."</td></tr>";
    }  
    header('Content-Type: application/json');
    echo json_encode($message);
    exit;
}

?>

You may also take a look to wp_send_json, wp_send_json_error and wp_send_json_success.