Sql 有从句的条件

Sql 有从句的条件,sql,sql-server,case,having,Sql,Sql Server,Case,Having,我有一个问题: 我可以在having子句中加一个条件吗 我尝试过这样的条件: SELECT distinct U.ID as USERID, U.CODE_PAYS, T.SKU, T.URL_IMAGE, T.PRODUCT_NAME_WEBSITE, T.BASELINE_1, T.URL_FICHE_PRODUIT FROM DATA_CATALOGUE_MARKETING T INNER JOIN USERS_CONTACT U ON T.C

我有一个问题: 我可以在having子句中加一个条件吗

我尝试过这样的条件:

 SELECT  distinct
 U.ID as USERID,        
 U.CODE_PAYS,
 T.SKU,
 T.URL_IMAGE,
 T.PRODUCT_NAME_WEBSITE,
 T.BASELINE_1,
 T.URL_FICHE_PRODUIT  
 FROM DATA_CATALOGUE_MARKETING T 
 INNER JOIN USERS_CONTACT U
 ON T.CODE_PAYS = U.CODE_PAYS
 INNER JOIN DATA_TRANSACTION_DETAILS DTD ON DTD.ID_CONTACT = U.ID AND DTD.CODE_PAYS = U.CODE_PAYS
 INNER JOIN DATA_CATALOGUE_MARKETING DCM ON DCM.SKU = DTD.SKU   AND T.INTERNAL_REF = DCM.INTERNAL_REF_NON_SAMPLE
 AND DCM.CODE_PAYS = DTD.CODE_PAYS
 AND DCM.GROUPE_ATTRIBUT = 'Sample'
 GROUP BY  U.ID, U.CODE_PAYS, T.SKU, T.URL_IMAGE_PRODUIT, T.PRODUCT_NAME_WEBSITE, T.BASELINE_1, T.URL_FICHE_PRODUIT 
 AND 
 (
    (
        U.CODE_PAYS = 'GB'
        HAVING MAX(convert(date,TRANS_DATE,120))) = convert(date,GETDATE()-14,120)
    )
    OR
    (
        U.CODE_PAYS = 'FR'
        HAVING MAX(convert(date,TRANS_DATE,120))) = convert(date,GETDATE()-24,120)
    )
 )
这种情况不起作用。如何设置条件来修补此问题


谢谢

您可以在having子句中添加条件,但不能在条件中添加having子句

按结果筛选分组的is子句不是函数..例如

 ........

 GROUP BY  U.ID, U.CODE_PAYS, T.SKU, T.URL_IMAGE_PRODUIT, T.PRODUCT_NAME_WEBSITE, T.BASELINE_1, T.URL_FICHE_PRODUIT
 HAVING MAX(convert(date,TRANS_DATE,120))) = convert(date,GETDATE()-14,120)
.......
在以下情况下尝试使用CASE:

HAVING MAX(convert(date,TRANS_DATE,120)) = (CASE WHEN U.CODE_PAYS = 'GB' THEN convert(date,GETDATE()-14,120)
                                                 WHEN U.CODE_PAYS = 'FR' THEN convert(date,GETDATE()-24,120)
                                                 ELSE NULL END)

请向我们展示您的完整查询
Having
groupby
之后使用,这在您所展示的内容中不清楚。为了更好地理解,您可以发布完整的查询。现在它看起来像是Where子句的一部分,但是Having不能用在Where子句中“不起作用”不是一个有用的描述。好的,我明白了,我做了这个例子来理解我需要什么。我怎样才能在having子句中设置条件?