Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将行插入MySQL表,将查询结果插入一个字段,SQL函数将返回值插入其他字段_Mysql_Function_Datetime - Fatal编程技术网

将行插入MySQL表,将查询结果插入一个字段,SQL函数将返回值插入其他字段

将行插入MySQL表,将查询结果插入一个字段,SQL函数将返回值插入其他字段,mysql,function,datetime,Mysql,Function,Datetime,在一个查询中,是否可以将一行插入MYSQL表以及从MYSQL函数返回的其他字段中的值 例如,我有下表: CREATE TABLE monthly_hours ( ProjectID int, Year int, Month int, monthTotalTime int ); 它显示了给定年份中给定月份的项目工作时间。 我有一个查询,它汇总了一个项目花费的总时间: INSERT INTO time_monthly_hours ( `ProjectID`, `monthTotal

在一个查询中,是否可以将一行插入MYSQL表以及从MYSQL函数返回的其他字段中的值

例如,我有下表:

CREATE TABLE monthly_hours
(
  ProjectID int,
  Year int,
  Month int,
  monthTotalTime int
);
它显示了给定年份中给定月份的项目工作时间。 我有一个查询,它汇总了一个项目花费的总时间:

INSERT INTO time_monthly_hours ( `ProjectID`, `monthTotalTime` ) 
 SELECT jiraissue.PROJECT, SUM(worklog.timeworked) 
 FROM worklog, jiraissue 
 WHERE worklog.issueid = jiraissue.ID 
  AND jiraissue.PROJECT = 13262 
  AND worklog.startdate BETWEEN '2017-01-01 00:00:00' AND '2017-01-18 23:59:59';
我想在monthly_hours表中插入projectID和MonthTolTime,以及月份和年份

我试过:

INSERT INTO time_monthly_hours ( ProjectID, monthTotalTime,  Year, Month ) VALUES
( 
 SELECT jiraissue.PROJECT, SUM(worklog.timeworked) 
 FROM worklog, jiraissue 
 WHERE worklog.issueid = jiraissue.ID 
  AND jiraissue.PROJECT = 13262 
  AND worklog.startdate BETWEEN '2017-01-01 00:00:00' AND '2017-01-18 23:59:59' 
), 
  MONTH(CURRENT_DATE()), YEAR(CURRENT_YEAR() );
但这是一个无效的查询。我已经搜索了很多次,但找不到这样的解决方案来同时将SQL查询结果和SQL函数中的值放入一行

请你给个建议。我需要在MySQL级别上完成这项工作,而不是通过更高级别的工具。多谢各位

表象更新:

问题内容不变

我试图增强格式,以便在BeNice要求时更具可读性 我修改了标题中的语法,稍微需要在字段中使用复数形式,问题的第一行中的queryto也被修改为queryto。谢谢
您的查询无效,因为您没有正确使用括号。使用INSERT…VALUES时,语法必须为:

INSERT INTO <table> (col, col, col, col) VALUES (val, val, val, val);

当您使用“插入…”时,请选择您不需要VALUES关键字。

您能让您的数据更具可读性吗请换行。1/2+1向上投票并接受答案,谢谢您这么多账单,回复也这么快。我更正了我的原始查询,因此YEARCURRENT\u YEAR应该是YEARCURRENT\u DATE.2/2…以便整个查询读取注释中的有限格式:插入time\u monthly\u hours Projectd,monthTotalTime选择jiraissue.PROJECT,SUMworklog.timeworked,YEARCURRENT\u DATE,MONTHCURRENT\u DATE FROM worklog,jiraissue,其中worklog.issueid=jiraissue.ID和jiraissue.PROJECT=13262,worklog.startdate介于“2017-01-01 00:00:00”和“2017-01-18 23:59:59”之间;很好。我也编辑了“按答案”来修正当前的_日期。我以前都没注意到。很高兴提供帮助。我已将操作的日期范围增强到MySQL函数,以确定第一天的开始时间为00:00和当前时间:插入到support_time_monthly_hours Projectd、monthTotalTime、Year、Month中选择jiraissue.PROJECT、SUMworklog.timeworked、YEARCURRENT_date、MONTHCURRENT_date FROM worklog,jiraissue,其中worklog.issueid=jiraissue.ID和jiraissue.PROJECT=13262,worklog.startdate介于日期\u FORMATNOW、%Y-%m-01 00:00:00'和现在之间;-信用:更新第1页,共2页,我进一步增强了它在触发器中的使用:为每一行在worklog上插入后创建触发器worklog\u更新替换到support\u time\u monthly\u hours Projectd,monthTotalTime,Year,Month,Month选择jiraissue.PROJECT,SUMworklog.timeworked,YEARCURRENT\u DATE,MONTHCURRENT\u DATE FROM worklog,jiraissue其中worklog.issueid=jiraissue.ID和jiraissue.PROJECT=从jiraissue中选择项目,其中NEW.issueid=jiraissue.ID和worklog.startdate介于日期\u FORMATNOW、%Y-%m-01 00:00:00'和现在之间;
INSERT INTO <table> (col, col, col, col) VALUES (val, val), val, val;
INSERT INTO time_monthly_hours ( ProjectID, monthTotalTime,  Year, Month )     
 SELECT jiraissue.PROJECT, SUM(worklog.timeworked),
  YEAR(CURRENT_DATE()), MONTH(CURRENT_DATE())
 FROM worklog, jiraissue 
 WHERE worklog.issueid = jiraissue.ID 
  AND jiraissue.PROJECT = 13262 
  AND worklog.startdate BETWEEN '2017-01-01 00:00:00' AND '2017-01-18 23:59:59'