Thanks for your help, I have acheived my objective. I was unable to union all three as two were coming from Visual Fox Pro tables and the third was an Access database (it just crashed CR) so I did two commands and it did not slow things down.
Command 1
SELECT "Orders" AS "type", month(`salesheader`.`orddate`) AS "Month", `salesheader`.`status`, `salesheader`.`salesman`, `salesheader`.`terr`, `salesdetail`.`qtyord`, `salesdetail`.`sell`
FROM `salesdetail` `salesdetail` INNER JOIN `salesheader` `salesheader` ON `salesdetail`.`oeno`=`salesheader`.`oeno`
WHERE (`salesheader`.`orddate`>={d '2013-03-06'} AND `salesheader`.`orddate`<={d '2013-03-07'}) AND (`salesheader`.`status`='3' OR `salesheader`.`status`='4' OR `salesheader`.`status`='5')
UNION ALL
SELECT "Invoice" AS "type", month(`invheader`.`invdate`) AS "Month", `invheader`.`status`, `invheader`.`salesman`, `invheader`.`terr`, `invdetail`.`qtyinv`, `invdetail`.`usell`, `invdetail`.`cusell`
FROM `invdetail` `invdetail` INNER JOIN `invheader` `invheader` ON (`invdetail`.`shipno`=`invheader`.`shipno`) AND (`invdetail`.`oeno`=`invheader`.`oeno`)
WHERE (`invheader`.`invdate`>={d '2013-03-06'} AND `invheader`.`invdate`<={d '2013-03-07'}) AND (`invheader`.`status`='1' OR `invheader`.`status`='2' OR `invheader`.`status`='3')
Command 2
SELECT "Budget" AS "type", month(`TerritoryBudgets`.`BudgetDate`) AS Month, `TerritoryBudgets`.`Terr`, "1" AS qty, `TerritoryBudgets`.`BudgetAmount`, `TerritoryBudgets`.`BudgetAmount`
FROM `TerritoryBudgets`
Then I just linked the Terr and Month fields and works perfecty. Turning the date to a month number was the key and as the report is for a financial year there would never be data from the same month from two different years.
Thanks again :)