不是 完整的就是 insert into table_b(...)values(SELECT x FROM table_a where y='1')
insert into table_b(...) SELECT x FROM table_a where y='1' 去掉values
insert into table_b(AA,BB) SELECT AA,BB FROM table_a where y='1'
insert语句不允许出现子查询语句用存储过程可以实现create proc ins as declare @result varchar(20) select @result=列名 FROM table_a where y='1' insert into table_b(...)values(@result) goexec ins
INSERT INTO Emp(StationName, EmpName, EmpAge, Teclv,TeethNum,reTime) select* from ( select T_M_Station.StationName,T_HR_EmpBasic.EmpName,datediff(year,birthday,getdate()) as EmpAge,T_HR_EmpBasic.TecLv,sum(T_M_TrackProduct.TeethNum) as TeethNum,reTime" + " from T_M_Track inner join T_M_Station on T_M_Track.State='1' and T_M_Track.BeginTime>='" + BeginTime + "' and T_M_Track.EndTime <='" + EndTime + "' and T_M_Track.StationID=T_M_Station.StationID " + " left join T_M_TrackProduct on T_M_Track.ID=T_M_TrackProduct.TrackID" + " inner join T_HR_EmpBasic on T_M_TrackProduct.ProduceEmpBasicID=T_HR_EmpBasic.ID and T_HR_EmpBasic.EmpID='" + txtEmpID.Text.Trim() + "'" + "left join T_M_TrackProductTech on T_M_TrackProduct.ID=T_M_TrackProductTech.TrackProductID" + " left join T_M_Tech on T_M_TrackProductTech.TechID=T_M_Tech.TechID" + " group by OrderID,T_M_Station.StationName,T_HR_EmpBasic.ID,T_HR_EmpBasic.EmpName,T_HR_EmpBasic.Birthday,T_HR_EmpBasic.TecLv,T_M_TrackProduct.TeethNum,T_M_Track.IsRepair,reTable.reTime") aa; 你这样试试看
string sql=" "INSERT INTO Emp(StationName, EmpName, EmpAge, Teclv,TeethNum,reTime) select T_M_Station.StationName,T_HR_EmpBasic.EmpName,datediff(year,birthday,getdate()) as EmpAge,T_HR_EmpBasic.TecLv,sum(T_M_TrackProduct.TeethNum) as TeethNum,reTime" + " from T_M_Track inner join T_M_Station on T_M_Track.State='1' and T_M_Track.BeginTime>='" + BeginTime + "' and T_M_Track.EndTime <='" + EndTime + "' and T_M_Track.StationID=T_M_Station.StationID " + " left join T_M_TrackProduct on T_M_Track.ID=T_M_TrackProduct.TrackID" + " inner join T_HR_EmpBasic on T_M_TrackProduct.ProduceEmpBasicID=T_HR_EmpBasic.ID and T_HR_EmpBasic.EmpID='" + txtEmpID.Text.Trim() + "'" + "left join T_M_TrackProductTech on T_M_TrackProduct.ID=T_M_TrackProductTech.TrackProductID" + " left join T_M_Tech on T_M_TrackProductTech.TechID=T_M_Tech.TechID" + " group by OrderID,T_M_Station.StationName,T_HR_EmpBasic.ID,T_HR_EmpBasic.EmpName,T_HR_EmpBasic.Birthday,T_HR_EmpBasic.TecLv,T_M_TrackProduct.TeethNum,T_M_Track.IsRepair,reTable.reTime"; "; 调试看看sql,在分析器里看看是否正确
去掉values
as
declare @result varchar(20)
select @result=列名 FROM table_a where y='1'
insert into table_b(...)values(@result)
goexec ins
麻烦各位高手帮帮看下是哪里出了问题,万分感谢!!!!protected void save_Click(object sender, System.EventArgs e)
{ try{
DateTime BeginTime = Convert.ToDateTime(txtBeginTime.Text.ToString());
DateTime EndTime = Convert.ToDateTime(txtEndTime.Text.ToString());
string myConnectString = "Data Source=308f4981667b487;Initial Catalog=de;Persist Security Info=True;User ID=sa;Password=sa123";
SqlConnection myConn = new SqlConnection(myConnectString);
myConn.Open();
SqlCommand cmd = myConn.CreateCommand();
cmd.CommandText = "INSERT INTO Emp(StationName, EmpName, EmpAge, Teclv,TeethNum,reTime) select T_M_Station.StationName,T_HR_EmpBasic.EmpName,datediff(year,birthday,getdate()) as EmpAge,T_HR_EmpBasic.TecLv,sum(T_M_TrackProduct.TeethNum) as TeethNum,reTime" +
" from T_M_Track inner join T_M_Station on T_M_Track.State='1' and T_M_Track.BeginTime>='" + BeginTime + "' and T_M_Track.EndTime<='" + EndTime + "' and T_M_Track.StationID=T_M_Station.StationID " +
" left join T_M_TrackProduct on T_M_Track.ID=T_M_TrackProduct.TrackID" +
" inner join T_HR_EmpBasic on T_M_TrackProduct.ProduceEmpBasicID=T_HR_EmpBasic.ID and T_HR_EmpBasic.EmpID='" + txtEmpID.Text.Trim() + "'" +
"left join T_M_TrackProductTech on T_M_TrackProduct.ID=T_M_TrackProductTech.TrackProductID" +
" left join T_M_Tech on T_M_TrackProductTech.TechID=T_M_Tech.TechID" + " group by OrderID,T_M_Station.StationName,T_HR_EmpBasic.ID,T_HR_EmpBasic.EmpName,T_HR_EmpBasic.Birthday,T_HR_EmpBasic.TecLv,T_M_TrackProduct.TeethNum,T_M_Track.IsRepair,reTable.reTime";
cmd.ExecuteNonQuery();
}
catch (Exception c)
{
Console.WriteLine("写入数据库错误:/n{0}", c.Message);
}
}
}
select* from
( select T_M_Station.StationName,T_HR_EmpBasic.EmpName,datediff(year,birthday,getdate()) as EmpAge,T_HR_EmpBasic.TecLv,sum(T_M_TrackProduct.TeethNum) as TeethNum,reTime" +
" from T_M_Track inner join T_M_Station on T_M_Track.State='1' and T_M_Track.BeginTime>='" + BeginTime + "' and T_M_Track.EndTime <='" + EndTime + "' and T_M_Track.StationID=T_M_Station.StationID " +
" left join T_M_TrackProduct on T_M_Track.ID=T_M_TrackProduct.TrackID" +
" inner join T_HR_EmpBasic on T_M_TrackProduct.ProduceEmpBasicID=T_HR_EmpBasic.ID and T_HR_EmpBasic.EmpID='" + txtEmpID.Text.Trim() + "'" +
"left join T_M_TrackProductTech on T_M_TrackProduct.ID=T_M_TrackProductTech.TrackProductID" +
" left join T_M_Tech on T_M_TrackProductTech.TechID=T_M_Tech.TechID" +
" group by OrderID,T_M_Station.StationName,T_HR_EmpBasic.ID,T_HR_EmpBasic.EmpName,T_HR_EmpBasic.Birthday,T_HR_EmpBasic.TecLv,T_M_TrackProduct.TeethNum,T_M_Track.IsRepair,reTable.reTime") aa;
你这样试试看
" from T_M_Track inner join T_M_Station on T_M_Track.State='1' and T_M_Track.BeginTime>='" + BeginTime + "' and T_M_Track.EndTime <='" + EndTime + "' and T_M_Track.StationID=T_M_Station.StationID " +
" left join T_M_TrackProduct on T_M_Track.ID=T_M_TrackProduct.TrackID" +
" inner join T_HR_EmpBasic on T_M_TrackProduct.ProduceEmpBasicID=T_HR_EmpBasic.ID and T_HR_EmpBasic.EmpID='" + txtEmpID.Text.Trim() + "'" +
"left join T_M_TrackProductTech on T_M_TrackProduct.ID=T_M_TrackProductTech.TrackProductID" +
" left join T_M_Tech on T_M_TrackProductTech.TechID=T_M_Tech.TechID" +
" group by OrderID,T_M_Station.StationName,T_HR_EmpBasic.ID,T_HR_EmpBasic.EmpName,T_HR_EmpBasic.Birthday,T_HR_EmpBasic.TecLv,T_M_TrackProduct.TeethNum,T_M_Track.IsRepair,reTable.reTime";
";
调试看看sql,在分析器里看看是否正确