It is ambigous because you have 3 tables, and only one field. If you are looking for one long list, you need to do 3 different queries. One for each table.
What you are trying to do is this:
SELECT DISTINCT(tblJobCost.DateAdded) AS ShowDate1, DISTINCT(tblJobBudget.DateAdded) AS ShowDate2...
But this will give you 3 columns of data, not one. I don't believe you can use the same name (ie: ShowDate) for each one, though you could try and see what it does. AFAIK, that's not legal.
I would just one run query for each table, and put them into an array.
$tables = array("tblJobCost", "tblJobBudget", "tblJobBudgetChanges");
foreach($tables AS $value)
{
$result = mysql_query("SELECT DateAdded FROM $value");
while( $row = mysql_fetch_array($result) )
{
$date_added[] = $row[0];
}
}
sort($date_added);