我需要在存储过程中写一个查询,我错过了下面的循环部分,否则插入和选择都是正确的,请建议完成查询或替代建议。带循环的小查询?
内传递的参数是@日,@ sectn只有
SELECT Name FROM tblProductionEffcyDetails where [email protected] and section [email protected]
我得到的名单(例如5名)
环路1:对于每一个名字,我需要做下面
循环2:
SELECT Tstdmin,TAvlbmin,@name=Name, @eid=Empid
FROM tblProductionEffcyDetails
WHERE (wDate = @date) AND (Section = @sectn) and Name = (1st name from the above query list)
@TSH = Tstdmin
(如果存在于数据库赋一个值rther值应该不会花)
@TAT+=TAvlbmin
插入上述值到另一个表
INSERT INTO tblDailyReport (wdate, Section, Name, Empid, TAvlT, TstdH, DEfficiency)
VALUES (@date,@sectn,@name,@eid,@TAT,@TSH,(@TSH/@TAT))
名称,EMPID从tblProductionEffcyDetails拍摄。
在loop2的上方,直到完成所有相同的名称,一旦完成,它将转到Loop1并完成所有名称。
tblProductionEffcyDetails有许多名称和重复名称,所以都需要在循环中。最后,每个名称(不重复)和总和细节将被插入到tblDailyReport。
前端〜C#Asp.Net
这个查询是针对sql标准的,并且只能在mysql中运行,如果通过sql模式的完整组是**不启用**。它在新版本的mysql中默认启用。 – Shadow
@Shadow你是说当有一个group时,mysql不允许选择常量,或者在这种情况下是参数? – juharr
@Shadow我读到的关于'ONLY_FULL_GROUP_BY'的信息越多,我越容易相信你错了,因为除了不是列的参数以外,我确实拥有组中选择的所有列,因此不受此规则约束。我也很不安,mysql实际上有一个模式,允许你选择不在组中的列。 – juharr