【问题标题】:Insert Select with additional parameters in SQL Server在 SQL Server 中插入带有附加参数的 Select
【发布时间】:2014-03-14 22:31:22
【问题描述】:

我正在尝试使用附加参数进行Insert Select 查询,但它不起作用。以下是我的代码:

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())

我只想从其他表中选择特定字段,并且我想从文本框中获取 cash,change,trans_date 那么我该怎么做呢?

【问题讨论】:

    标签: sql sql-server insert-select


    【解决方案1】:
    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 = '-'
    

    插入... SELECT ..... 语法插入从您的选择语句返回的结果集,您不能在末尾使用逗号来传递其他值。只需简单地选择您的选择语句中的值,整个返回的结果集将被插入到您的目标表中。

    【讨论】:

      【解决方案2】:
          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
      

      【讨论】:

        【解决方案3】:
        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 = '-'
        

        创建 sqlCommand,从文本框中添加参数,然后执行。

        【讨论】:

          猜你喜欢
          • 2013-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-19
          • 1970-01-01
          相关资源
          最近更新 更多