I'll assume that you don't need to any decimal places (if you do, cast all expressions to floats) and the sums are never null (if they are, use ISNULL function):

SELECT *

FROM (

SELECT cast([Id] AS VARCHAR(20)) AS ID

,[Site]

,convert(VARCHAR(20), [jobdate], 101) AS [job date]

,[submittime]

,[totalfirstjobs]

,[totalSecondJobs]

,[totalThirdjobs]

,[nightwork]

,[totalfirstjobs] + [totalsecondjobs] + [totalthirdjobs] + [nightwork] AS [Total all Jobs]

,(ISNULL([totalfirstjobs],0)*100)/(ISNULL([totalfirstjobs],0) + ISNULL([totalsecondjobs],0) + ISNULL([totalthirdjobs],0) + [nightwork]) AS percentfirstjobs

FROM site_total

WHERE convert(VARCHAR(20), [jobdate], 101) = convert(VARCHAR(20), getdate(), 101)

UNION

SELECT 'Totals'

,NULL

,convert(VARCHAR(20), [jobdate], 101)

,NULL

,sum(totalfirstjobs)

,sum(totalsecondjobs)

,sum(totalthirdjobs)

,sum(nightwork)

,sum(totalfirstjobs) + sum(totalsecondjobs) + sum(totalthirdjobs) + sum(nightwork)

,(sum([totalfirstjobs])*100)/(sum([totalfirstjobs]) + sum([totalsecondjobs]) + sum([totalthirdjobs]) + [nightwork]) AS percentfirstjobs

FROM site_total

GROUP BY [jobdate]

) tbla

where cast([job Date] as date) =cast(getdate() as date)

ORDER BY [job Date ]

**Please note that I've not dealt with a divide by zero problem if that's a possibility.**
What have you tried?

Where are you stuck?

What help do you need?

Take the total number of jobs divide by 100 the multiply by the number of first jobs this will give you the first job percentage.

This is how the sql is setup

[Id] INT IDENTITY (1, 1) NOT NULL,

[site] VARCHAR (50) NULL,

[jobdate] DATETIME NULL,

[submittime] VARCHAR (50) NULL,

[totalFirstJobs] INT NULL,

[totalSecondJobs] INT NULL,

[totalThirdJobs] INT NULL,

[nightwork] INT NULL,