<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic WHEN NOT MATCHED BY SOURCE Syntax error at or near 'BY' (DBR 11.2 ML) in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10794#M5879</link>
    <description>&lt;P&gt;Hi, I have trouble with executing the given SQL Statement below.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;MERGE INTO warehouse.pdr_debit_card as TARGET
USING (SELECT * FROM (
  SELECT CIF, 
      CARD_TYPE,
      ISSUE_DATE,
      MATURITY_DATE,
      BOO,
      DATA_DATE, 
      row_number() over (PARTITION BY CIF, 
        CARD_TYPE,
        ISSUE_DATE,
        MATURITY_DATE,
        BOO,
        DATA_DATE order by cif) as rank
      from staging.pdr_debit_card
      ) s where s.rank = 1 ) as SOURCE
ON TARGET.CIF = SOURCE.CIF AND
TARGET.CARD_TYPE = SOURCE.CARD_TYPE AND
TARGET.ISSUE_DATE = SOURCE.ISSUE_DATE AND
TARGET.MATURITY_DATE = SOURCE.MATURITY_DATE AND
TARGET.DATA_DATE = SOURCE.DATA_DATE AND
TARGET.BOO = SOURCE.BOO 
WHEN MATCHED THEN
  UPDATE SET
    STATUS = 'active'
WHEN NOT MATCHED BY TARGET
  THEN INSERT (
    CIF,
    CARD_TYPE,
    ISSUE_DATE,
    MATURITY_DATE,
    DATA_DATE,
    BOO,
    STATUS
  )
  VALUES (
    cast(SOURCE.CIF as string),
    cast(SOURCE.CARD_TYPE as string),
    to_date(SOURCE.ISSUE_DATE, 'yyyy-MM-dd'),
    to_date(SOURCE.MATURITY_DATE, 'yyyy-MM-dd'),
    to_date(SOURCE.DATA_DATE, 'yyyyMMdd'),
    cast(SOURCE.BOO as string),
    'active'
  )
WHEN NOT MATCHED BY SOURCE AND STATUS = 'active' THEN 
  UPDATE SET
    STATUS = 'inactive';&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Exception occurred,&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;ParseException: 
[PARSE_SYNTAX_ERROR] Syntax error at or near 'BY'(line 26, pos 17)
&amp;nbsp;
WHEN NOT MATCHED BY SOURCE AND STATUS = 'active' THEN 
-----------------^^^
  UPDATE SET
    STATUS = 'inactive'&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;My work runs on DBR 11.2 ML, Spark 3.3.0, Scala 2.12.&lt;/P&gt;&lt;P&gt;Based on the &lt;A href="https://docs.databricks.com/sql/language-manual/delta-merge-into.html?_ga=2.189959784.2105464763.1674443357-1377376580.1663642051" alt="https://docs.databricks.com/sql/language-manual/delta-merge-into.html?_ga=2.189959784.2105464763.1674443357-1377376580.1663642051" target="_blank"&gt;documentation&lt;/A&gt;, would this syntax apply on my statements?&lt;/P&gt;&lt;P&gt;Also, can Delta API work on this query too? &lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
    <pubDate>Tue, 24 Jan 2023 03:39:46 GMT</pubDate>
    <dc:creator>Kajorn</dc:creator>
    <dc:date>2023-01-24T03:39:46Z</dc:date>
    <item>
      <title>WHEN NOT MATCHED BY SOURCE Syntax error at or near 'BY' (DBR 11.2 ML)</title>
      <link>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10794#M5879</link>
      <description>&lt;P&gt;Hi, I have trouble with executing the given SQL Statement below.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;MERGE INTO warehouse.pdr_debit_card as TARGET
USING (SELECT * FROM (
  SELECT CIF, 
      CARD_TYPE,
      ISSUE_DATE,
      MATURITY_DATE,
      BOO,
      DATA_DATE, 
      row_number() over (PARTITION BY CIF, 
        CARD_TYPE,
        ISSUE_DATE,
        MATURITY_DATE,
        BOO,
        DATA_DATE order by cif) as rank
      from staging.pdr_debit_card
      ) s where s.rank = 1 ) as SOURCE
ON TARGET.CIF = SOURCE.CIF AND
TARGET.CARD_TYPE = SOURCE.CARD_TYPE AND
TARGET.ISSUE_DATE = SOURCE.ISSUE_DATE AND
TARGET.MATURITY_DATE = SOURCE.MATURITY_DATE AND
TARGET.DATA_DATE = SOURCE.DATA_DATE AND
TARGET.BOO = SOURCE.BOO 
WHEN MATCHED THEN
  UPDATE SET
    STATUS = 'active'
WHEN NOT MATCHED BY TARGET
  THEN INSERT (
    CIF,
    CARD_TYPE,
    ISSUE_DATE,
    MATURITY_DATE,
    DATA_DATE,
    BOO,
    STATUS
  )
  VALUES (
    cast(SOURCE.CIF as string),
    cast(SOURCE.CARD_TYPE as string),
    to_date(SOURCE.ISSUE_DATE, 'yyyy-MM-dd'),
    to_date(SOURCE.MATURITY_DATE, 'yyyy-MM-dd'),
    to_date(SOURCE.DATA_DATE, 'yyyyMMdd'),
    cast(SOURCE.BOO as string),
    'active'
  )
WHEN NOT MATCHED BY SOURCE AND STATUS = 'active' THEN 
  UPDATE SET
    STATUS = 'inactive';&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Exception occurred,&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;ParseException: 
[PARSE_SYNTAX_ERROR] Syntax error at or near 'BY'(line 26, pos 17)
&amp;nbsp;
WHEN NOT MATCHED BY SOURCE AND STATUS = 'active' THEN 
-----------------^^^
  UPDATE SET
    STATUS = 'inactive'&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;My work runs on DBR 11.2 ML, Spark 3.3.0, Scala 2.12.&lt;/P&gt;&lt;P&gt;Based on the &lt;A href="https://docs.databricks.com/sql/language-manual/delta-merge-into.html?_ga=2.189959784.2105464763.1674443357-1377376580.1663642051" alt="https://docs.databricks.com/sql/language-manual/delta-merge-into.html?_ga=2.189959784.2105464763.1674443357-1377376580.1663642051" target="_blank"&gt;documentation&lt;/A&gt;, would this syntax apply on my statements?&lt;/P&gt;&lt;P&gt;Also, can Delta API work on this query too? &lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jan 2023 03:39:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10794#M5879</guid>
      <dc:creator>Kajorn</dc:creator>
      <dc:date>2023-01-24T03:39:46Z</dc:date>
    </item>
    <item>
      <title>Re: WHEN NOT MATCHED BY SOURCE Syntax error at or near 'BY' (DBR 11.2 ML)</title>
      <link>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10795#M5880</link>
      <description>&lt;P&gt;I have figured this out, WHEN NOT MATCHED BY TARGET support Databricks Runtime 12.1 and above&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jan 2023 04:32:17 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10795#M5880</guid>
      <dc:creator>Kajorn</dc:creator>
      <dc:date>2023-01-24T04:32:17Z</dc:date>
    </item>
    <item>
      <title>Re: WHEN NOT MATCHED BY SOURCE Syntax error at or near 'BY' (DBR 11.2 ML)</title>
      <link>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10796#M5881</link>
      <description>&lt;P&gt;Hi, Please refer: &lt;A href="https://docs.databricks.com/sql/language-manual/delta-merge-into.html" target="test_blank"&gt;https://docs.databricks.com/sql/language-manual/delta-merge-into.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/824iABD780CCE9B2024A/image-size/large?v=v2&amp;amp;px=999" role="button" title="image" alt="image" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jan 2023 07:17:53 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/when-not-matched-by-source-syntax-error-at-or-near-by-dbr-11-2/m-p/10796#M5881</guid>
      <dc:creator>Debayan</dc:creator>
      <dc:date>2023-01-24T07:17:53Z</dc:date>
    </item>
  </channel>
</rss>

