2016-12-09 25 views
0

我有下面的XML代碼,我試圖生成代碼後顯示的XML - 嘗試了幾種方法,但沒有成功。多根XML - SQL Server

有2個表格:[meiForecasting].[dbo].george_mdx的數據如下所示,其他數據如下。我試圖加入表格,這樣我就可以得到xml,這樣對於每個pricebandpricedfrom-pricedto)之間的george_mdx中的每個UnitPrice,我將能夠生成隨後的xml格式。

看到我的代碼如下。

內XML完美地工作,但是外部元件(pricebandpricebands和)都是問題。

(Select 

(select 

pb.pricebandID '@Id', 
pb.[pricedfrom] '@start', 
pb.[PricedTo] '@end', 

(
SELECT cast(yearnumber as int) AS '@number' 
,(convert(varchar(12), cast(yearstart as date), 126)) AS '@yearstart' 
    ,(convert(varchar(12), cast(yearend as date), 126)) AS '@yearend' 
    ,(
    SELECT cast(X.WeekNumber as int) AS '@number' 
      ,cast(x.Quantity as int) AS '@units'  
    FROM [meiForecasting].[dbo].george_mdx AS X 
    WHERE cast(X.YearNumber as int)=cast(tbl.YearNumber as int) 
    FOR XML PATH('week'),TYPE 
    ) 
FROM [meiForecasting].[dbo].george_mdx AS tbl inner join   meiforecasting.PLANNING.PriceBand as pb 
ON (tbl.unitprice <= pb.PricedTo AND tbl.unitprice >= pb.PricedFrom) 
GROUP BY YearNumber,YearStart,YearEnd, pb.GroupID 
FOR XML PATH('year'),ROOT('years') 
    ) 
) 

FOR XML PATH ('Priceband'),ROOT ('PriceBands') 
) 
) 

表[meiForecasting] [DBO] .george_mdx

+------------+------------+----------+-----------+ 
| yearnumber | weeknumber | quantity | unitprice | 
+------------+------------+----------+-----------+ 
|   1 |   44 |  3807 | 45662.55 | 
|   1 |   45 |  4048 | 45295.00 | 
|   1 |   46 |  3862 | 45047.68 | 
|   1 |   47 |  3677 | 41013.00 | 
|   1 |   48 |  3695 | 39387.43 | 
|   1 |   49 |  3871 | 43199.02 | 
|   1 |   50 |  3686 | 39131.82 | 
|   2 |   1 |  4287 | 51086.02 | 
|   2 |   2 |  4751 | 60404.40 | 
|   2 |   3 |  5536 | 67468.90 | 
|   2 |   4 |  3712 | 45776.32 | 
|   2 |   5 |  3367 | 44288.19 | 
|   2 |   6 |  3598 | 45307.49 | 
|   2 |   7 |  3461 | 47757.59 | 
|   2 |   8 |  3334 | 43771.33 | 
|   2 |   9 |  3325 | 41656.88 | 
|   2 |   10 |  3313 | 44738.39 | 
|   2 |   32 |  3303 | 40144.35 | 
|   2 |   33 |  3229 | 45892.27 | 
|   2 |   34 |  3313 | 44570.07 | 
|   2 |   35 |  3338 | 44978.12 | 
|   2 |   36 |  3432 | 46760.30 | 
|   2 |   37 |  3340 | 48341.05 | 
|   2 |   38 |  3597 | 48673.97 | 
|   2 |   39 |  3628 | 48636.17 | 
|   3 |   29 |  3179 | 43610.97 | 
+------------+------------+----------+-----------+ 


+--------------------+---------+----------+ 
| Planning.  |priceband|   | 
+--------------------+---------+----------+ 
|     | 
| 43     | 0.00 | 1000.00 | 
| 45     | 0.00 | 1000.00 | 
| 49     | 0.00 | 999.99 | 
| 50     | 1000.00 | 1999.99 | 
| 51     | 2000.00 | 9999.00 | 
| 52     | 0.00 | 15.00 | 
| 53     | 15.01 | 300.00 | 
| 62     | 0.00 | 15.00 | 
| 63     | 15.01 | 200.00 | 
| 69     | 100.00 | 500.99 | 
| 70     | 501.00 | 1000.00 | 
| 78     | 0.00 | 299.99 | 
| 79     | 300.00 | 399.99 | 
| 80     | 400.00 | 499.99 | 
| 81     | 500.00 | 599.99 | 
| 82     | 600.00 | 699.99 | 
| 83     | 700.00 | 999.99 | 
| 84     | 1000.00 | 10000.00 | 
| 125    | 50.00 | 99.99 | 
| 126    | 100.00 | 199.99 | 
| 127    | 200.00 | 299.99 | 
| 128    | 300.00 | 399.99 | 
| 129    | 400.00 | 9999.00 | 
+--------------------+---------+----------+ 

預期XML(僅作示例,圖可能不正確)

<priceBands> <priceBand id="1" end="99.99" start="0.00"> 
<years> <year number="1"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> -<year number="2"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="3"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> -<year number="4"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="5"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 
</year> </years> </priceBand> 

<priceBand id="2" end="499.99" start="100.00"> 

<years> <year number="1"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="2"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="3"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="4"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> -<year number="5"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
. 
. 
. 
<week number="52" units="41"/> 

</year> </years> </priceBand> 

<priceBand id="3" end="999.99" start="500.00"> <years> <year number="1"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="2"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="3"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> -<year number="4"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 

</year> <year number="5"> 
<week number="1" units="41"/> 
<week number="2" units="41"/> 
<week number="3" units="41"/> 
<week number="4" units="41"/> 
<week number="5" units="41"/> 
<week number="6" units="41"/> 
<week number="7" units="41"/> 
<week number="8" units="41"/> 
<week number="9" units="41"/> 
<week number="10" units="41"/> 
<week number="11" units="41"/> 
<week number="12" units="41"/> 
<week number="13" units="41"/> 
<week number="14" units="41"/> 
<week number="15" units="41"/> 
<week number="16" units="41"/> 
<week number="17" units="41"/> 
<week number="18" units="41"/> 
<week number="19" units="41"/> 
<week number="20" units="41"/> 
<week number="21" units="41"/> 
<week number="22" units="41"/> 
<week number="23" units="41"/> 
<week number="24" units="41"/> 
<week number="25" units="41"/> 
<week number="26" units="41"/> 
<week number="27" units="41"/> 
<week number="28" units="41"/> 
<week number="29" units="41"/> 
<week number="30" units="41"/> 
<week number="31" units="41"/> 
<week number="32" units="41"/> 
<week number="33" units="41"/> 
<week number="34" units="41"/> 
<week number="35" units="41"/> 
<week number="36" units="41"/> 
<week number="37" units="41"/> 
<week number="38" units="41"/> 
<week number="39" units="41"/> 
<week number="40" units="41"/> 
<week number="41" units="41"/> 
<week number="42" units="41"/> 
<week number="43" units="41"/> 
<week number="44" units="41"/> 
<week number="45" units="41"/> 
<week number="46" units="41"/> 
<week number="47" units="41"/> 
<week number="48" units="41"/> 
<week number="49" units="41"/> 
<week number="50" units="41"/> 
<week number="41" units="41"/> 
<week number="52" units="41"/> 
</year> </years> 
</priceBand> </priceBands> 
+0

我告訴過你[你的相關的問題(http://stackoverflow.com/q/40923206/5089204)。包含**減少的樣本數據**會非常好。每組只需要一些行來理解邏輯。另一方面,將**期望的輸出與相應的數字**相加是至關重要的。試着想一想外國人的頭腦。我不知道,你在做什麼...最好是[MCVE(詳情在這裏)](http://stackoverflow.com/help/mcve) – Shnugo

+0

進一步:你的查詢不適合給出的表。在你的示例表中沒有'yeartart'或'yearend'提供一個** MCVE **將幫助你KISS(*保持它小而簡單*),這將有助於避免這樣的惱人的錯誤... – Shnugo

+0

再一個提示:看看你以前的問題。我爲你做了你的工作......看看錶格變量是如何聲明和填充的?這正是你應該在這裏做的(**減少!! **數據) – Shnugo

回答

0

我的魔法玻殼告訴我,你可能正在尋找類似這樣的東西:

但是(請參閱我的意見在您的問題下面)有很多不清除[R ...

SELECT pricebandID AS [@id] 
     ,pricedTo AS [@end] 
     ,pricedFrom AS [@start] 
     ,(
     SELECT cast(yearnumber as int) AS '@number' 
     ,(convert(varchar(12), cast(yearstart as date), 126)) AS '@yearstart' 
      ,(convert(varchar(12), cast(yearend as date), 126)) AS '@yearend' 
      ,(
      SELECT cast(X.WeekNumber as int) AS '@number' 
        ,cast(x.Quantity as int) AS '@units'  
      FROM @george_mdx AS X 
      WHERE cast(X.YearNumber as int)=cast(tbl.YearNumber as int) 
       AND X.unitprice BETWEEN pl.pricedFrom AND pl.pricedTo 
      FOR XML PATH('week'),TYPE 
      ) 
     FROM @george_mdx AS tbl 
     WHERE tbl.unitprice BETWEEN pl.pricedFrom AND pl.pricedTo 
     GROUP BY YearNumber,YearStart,YearEnd 
     FOR XML PATH('year'),ROOT('years') 
     ) 

FROM @Planning AS pl 
FOR XML PATH('priceBand'),ROOT('priceBands') 
+0

謝謝Shnugo - 這與一些修改工作 –