title: Syntax error near variable, expected a step expression in loop for (XQuery, SQL Server)
body: <pre><code>DECLARE @x xml = 
  '&lt;A&gt;
      &lt;B name="235"&gt;
          &lt;A1&gt;
              &lt;C id="1.1"/&gt;
              &lt;D id="1.2" /&gt;
          &lt;/A1&gt;
      &lt;/B&gt;
      &lt;B name="535"&gt;
          &lt;A1&gt;
              &lt;C id="2.1"/&gt;
              &lt;D id="2.2" /&gt;
          &lt;/A1&gt;
      &lt;/B&gt;   
  &lt;/A&gt;'
  </code></pre>
  
  <p>I want to get attribute value of ancestor B (idB) for each tag on 4 level (C, D). </p>
  
  <p>For example:</p>
  
  <pre><code>&lt;node tag="C"&gt;
    &lt;id&gt;1.1&lt;/id&gt;
    &lt;idB&gt;235&lt;/idB&gt;
  &lt;/node&gt;
  &lt;node tag="D"&gt;
    &lt;id&gt;1.2&lt;/id&gt;
    &lt;idB&gt;235&lt;/idB&gt;
  &lt;/node&gt;
  &lt;node tag="C"&gt;
    &lt;id&gt;2.1&lt;/id&gt;
    &lt;idB&gt;535&lt;/idB&gt;
  &lt;/node&gt;
  &lt;node tag="D"&gt;
    &lt;id&gt;2.2&lt;/id&gt;
    &lt;idB&gt;535&lt;/idB&gt;
  &lt;/node&gt;
  </code></pre>
  
  <p>I use XQuery in SQL Server:</p>
  
  <pre><code>SELECT @x.query('for $b in /A/B/A1/*
                   return
                      &lt;node tag="{local-name($b)}"&gt;   
                          &lt;id&gt;{data($b/@*[1])}&lt;/id&gt;
                          &lt;idB&gt;{data(//logu[.//$b]/@*[1])}&lt;/idB&gt;
                      &lt;/node&gt;
          ')
  </code></pre>
  
  <p>But I get an error;</p>
  
  <blockquote>
    <p>Syntax error near "$b", expected a step expression</p>
  </blockquote>