【发布时间】:2016-08-21 12:13:41
【问题描述】:
您好,我正在尝试编写一个查询,该查询包括计算 2 个值的总和,第二个总和是第一个值与另一个值相乘的结果。有人可以帮忙解决这个问题吗? (对不起我的英语,我是法语开发人员):
SELECT ISNULL(CONVERT(VARCHAR,CONVERT(date,MARE_DAT_CRE,103)),'Total') AS Dat
, SUM (MARE_CAUTIONNEMENT) AS HT
, SUM ( MARE_CAUTIONNEMENT * ( SELECT DISTINCT LCF_TAUXTVA
FROM F_LIGNECOMFOU
INNER JOIN F_AFFAIRES ON LCF_CODE_AFF = AF_CODE_AFFAIRE
INNER JOIN F_LOT ON LT_AFFAIRE = AF_CODE_AFFAIRE
INNER JOIN F_COMMANDEFOU ON CF_NUMERO = LCF_CF_NUMERO
INNER JOIN F_P_FOURNISSEUR ON CF_IDENT_FO = FOU_IDENT
WHERE AF_CODE_AFFAIRE = '15065-00' AND LT_IDENT = 500002200 AND FOU_IDENT = 500000838 ) ) FROM F_AVENANT_RETENUE INNER JOIN F_MARCHE_AVENANT ON MAAV_IDENT = MARE_MAAV_IDENT INNER JOIN F_MARCHE_TRAVAUX ON MATR_IDENT = MAAV_MATR_IDENT INNER JOIN F_AFFAIRES ON AF_CODE_AFFAIRE = MATR_AF_IDENT INNER JOIN F_LOT ON LT_AFFAIRE = AF_CODE_AFFAIRE INNER JOIN F_AVENANT_COTATION ON AVCO_IDENT = MARE_AVCO_IDENT WHERE AF_CODE_AFFAIRE = '15065-00' AND LT_IDENT = 500002200 AND MATR_FOU_IDENT = 500000838 AND MARE_CAUTIONNEMENT IS NOT NULL
GROUP BY MARE_DAT_CRE WITH ROLLUP
【问题讨论】:
-
您是否尝试将 group by 添加到与您的非聚合列相同的位置? GROUP BY ISNULL(CONVERT(VARCHAR, CONVERT(DATE, MARE_DAT_CRE, 103)), 'Total') WITH ROLLUP
-
我也使用了带有 ROLLUP 子句的 GROUP BY 但它没有显示
-
是的@RichBenner,但我的问题没有显示:
-
按 MARE_DAT_CRE 与 ROLLUP 分组
-
尝试将 ',SUM(MARE_CAUTIONNEMENT * (SELECT DISTINCT LCF_TAUXTVA' 更改为此 ',SUM(MARE_CAUTIONNEMENT) * SUM(SELECT DISTINCT LCF_TAUXTVA'。您将需要一个右括号在 SUM 末尾删除
标签: sql sql-server database join subquery