Question

I'm trying to make a Insert Select query with additional parameters but it doesn't work. Below is my code:

INSERT INTO [epmscdc].[dbo].[billing] 
([pid] ,[did] ,[lid] ,[totalamt] ,
[cash] ,[bchange] ,[btrans_date])
SELECT patientlab.did, patientlab.pid, 
       patientlab.lid, laboratory.lprice 
FROM patientlab
INNER JOIN laboratory 
  ON patientlab.lid = laboratory.lid
INNER JOIN doctor 
  ON patientlab.did = doctor.did 
WHERE patientlab.pid = 3 
  AND pstatus = '-', 1000,1000,GETDATE())

I just want to select specific field from the other tables and I want to get the cash,change,trans_date from a textbox so how can I do that?

Was it helpful?

Solution

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.

OTHER TIPS

    INSERT INTO [epmscdc].[dbo].[billing] ([pid] ,[did] ,[lid] ,[totalamt] ,[cash] ,[bchange] ,[btrans_date]) VALUES
(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 = '-') As b
INSERT INTO [epmscdc].[dbo].[billing] ([pid] ,[did] ,[lid] ,[totalamt] ,[cash] ,[bchange] ,[btrans_date])
SELECT patientlab.did, patientlab.pid, patientlab.lid, laboratory.lprice,@totalamt,@cash,@btransDate 
FROM patientlab
INNER JOIN laboratory ON patientlab.lid = laboratory.lid
INNER JOIN doctor ON patientlab.did = doctor.did 
WHERE patientlab.pid = 3 AND pstatus = '-'

Create the sqlCommand, add the parameters from your text boxes, and execute.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top