INSERT INTO [epmscdc].[dbo].[billing] ([pid] ,[did] ,[lid] ,[totalamt] ,[cash] ,[bchange] ,[btrans_date])
SELECT patientlab.did, patientlab.pid, patientlab.lid, laboratory.lprice , 1000,1000,GETDATE()
FROM patientlab
INNER JOIN laboratory ON patientlab.lid = laboratory.lid
INNER JOIN doctor ON patientlab.did = doctor.did
WHERE patientlab.pid = 3 AND pstatus = '-'
INSERT INTO ..... SELECT ..... Syntax inserts the result set returned from your select statement, you cannot use commas at the end to pass other values. just simply select the values in your select statement and the whole returned result set will be inserted into your target table.