当我运行此脚本时:
WITH MaxValues AS
(
SELECT
Par.CodEst AS 'BNA',
Est.GLS_ESTACION AS 'ESTACION',
Par.FecMed,
DAY(Par.FecMed) AS 'DIA',
MONTH(Par.FecMed) AS 'MES',
YEAR(Par.FecMed) AS 'AÑO',
Par.Medici,
ROUND(DBO.Calcula_CaudalJV(Par.Medici, Par.FecMed, Par.CodEst), 3) AS 'CAUDAL_MAX'
FROM
RDDS00.dbo.SCBD0200 Par
JOIN
TG_ESTACION_BNA Est
ON Par.CodEst = Est.COD_ESTACION + '-' + Est.DIG_ESTACION
WHERE
Est.GLS_ESTACION IN ('RIO GRANDE EN LAS RAMADAS', 'RIO TASCADERO EN DESEMBOCADURA', 'RIO GRANDE EN CUYANO')
and year(Par.FecMed) = '2024'
and month(Par.FecMed) = '06'
)
-- Here you can write your main query that uses the MaxValues CTE
SELECT
BNA,
ESTACION,
DIA,
MES,
AÑO,
MAX(Medici) AS 'ALTURA LM MAX (m)',
MAX(CAUDAL_MAX) AS 'CAUDAL MAX (m3/s)',
(SELECT FecMed
FROM MaxValues AS mv
WHERE mv.BNA = mv_inner.BNA
AND mv.CAUDAL_MAX = mv_inner.CAUDAL_MAX
AND mv.FecMed = mv_inner.FecMed) AS 'HORA MAX CAUDAL'
FROM
MaxValues mv_inner
GROUP BY
BNA,
ESTACION,
DIA,
MES,
AÑO
ORDER BY
AÑO, MES, DIA;
要解决此错误:
“消息 8120,第 16 层,状态 1,第 34 行 La columna 'MaxValues.CAUDAL_MAX' 是有效的选择列表 没有 está contenida en una función de agregado ni en la cláusula GROUP 通过。
消息 8120,级别 16,状态 1,第 35 行 La 列“MaxValues.FecMed”de 有效的选择列表,因为没有任何内容 función de agregado ni en la cláusula GROUP BY。”
翻译(谷歌翻译)
“消息 8120,级别 16,状态 1,第 34 行 选择列表中的列“MaxValues.CAUDAL_MAX”无效,因为它不包含在聚合函数或 GROUP BY 子句中。
消息 8120,级别 16,状态 1,第 35 行 选择列表中的列“MaxValues.FecMed”无效,因为它未包含在聚合函数或 GROUP BY 子句中。”
我需要知道最大值“Medici”和最大值“CAUDAL_MAX”(这是一个存储过程),并且我需要知道“HORA MAX CAUDAL”是什么时间。
问题出在
mv_inner.CAUDAL_MAX
子选择中对 mv_inner.FecMed
和 HORA MAX CAUDAL
的引用。也许你需要将其替换为:
(SELECT FecMed
FROM MaxValues AS mv
WHERE mv.BNA = mv_inner.BNA
AND mv.CAUDAL_MAX = MAX(mv_inner.CAUDAL_MAX)
AND mv.FecMed = MAX(mv_inner.FecMed)) AS 'HORA MAX CAUDAL'
如果这不是您需要的解决方案,您需要更好地解释
HORA MAX CAUDAL
值预计代表什么。可能需要样本数据和预期结果。