我想创建一个图表,用于从SQL数据库中生成的2个用户问题中提取数据。SQL - 2个表值按第三个未连接值分组
问题是用户问题与答案一样存储在同一个表中。唯一的连接是问题字符串包含年份值,我使用命令提取的年份值,以便输出一个名为'YEAR'的列,列中包含从2013年到2038年(25年期间)的整数值列表, 。 然后,我想从每个'YEAR'拉相应的答案('预测'和'实际'),以便我可以绘制一个图表与每年的几个值(抱歉,如果这没有任何意义)。图表应显示25年期间的预测线,第二行(或列)显示多年来人口填充时的实际值。然后我就能够想象,如果我们的实际值是接近我们原来的预测数字(长期目标!)
下面的代码
SELECT CAST((LEFT(F_TASK_ANS.TA_ANS_QUESTION,4)) AS INTEGER) AS YEAR,
-- first select takes left 4 characters of question and outputs value as string then coverts value to whole number.
CAST((CASE WHEN F_TASK_ANS.TA_ANS_QUESTION LIKE '%forecast' THEN F_TASK_ANS.TA_ANS_ANSWER END) AS NUMERIC(9,2)) AS 'FORECAST',
CAST((CASE WHEN F_TASK_ANS.TA_ANS_QUESTION LIKE '%actual' THEN ISNULL(F_TASK_ANS.TA_ANS_ANSWER,0) END) AS NUMERIC(9,2)) AS 'ACTUAL'
-- actual value will be null until filled in each year therefore ISNULL added to replace null with 0.00.
FROM F_TASK_ANS INNER JOIN F_TASKS ON F_TASK_ANS.TA_ANS_FKEY_TA_SEQ = F_TASKS.TA_SEQ
WHERE TA_ANS_ANSWER <> ''
AND (TA_TASK_ID LIKE '%6051' OR TA_TASK_ID LIKE '%6052')
-- The two numbers above refer to separate PPM questions that the user enters a value into
我试图GROUP BY“YEAR”但我得到一个
Error: Each GROUP BY expression must contain at least one column that is not an outer reference - which I assume is because I haven't linked the 2 tables in any way...
我应该加入UNION所以表的连接?
我希望看到的是类似如下的输出(我将在后面绘制了)
YEAR FORECAST ACTUAL
2013 135000 127331
2014 143000 145102
2015 149000 0
2016 158000 0
2017 161000 0
2018... etc
任何帮助或指导将非常感激。 感谢
哪个SQL数据库是这? – Shiva
SQL Server 2008(由第三方托管) –