2016-12-09 1 views
0

J'ai le code XML suivant et j'essaye de générer le xml montré après le code - essayé plusieurs approches mais sans succès.XML racine multiple - SQL Server

Il y a 2 tables: [meiForecasting].[dbo].george_mdx a les données indiquées ci-dessous et les données pour l'autre suit. J'essaie de rejoindre les tables afin que je puisse obtenir le xml tel que pour chaque UnitPrice dans george_mdx qui tombe entre chaque groupe de priceband (pricedfrom - pricedto), je serai en mesure de générer le format xml qui suit.

Voir mon code ci-dessous.

Le fichier XML interne fonctionne parfaitement, mais les éléments extérieurs (priceband et pricebands) constituent le problème.

(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') 
) 
) 

table [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 | 
+--------------------+---------+----------+ 

attendu XML (SPÉCIMEN-chiffres peuvent ne pas être correct)

<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

Comme je vous l'ai dit dans [votre question connexe] (http://stackoverflow.com/q/40923206/5089204). Ce serait vraiment bien d'inclure ** des données d'échantillon réduites **. Juste quelques lignes par groupe pour comprendre la logique. D'un autre côté, il est crucial d'ajouter votre ** résultat attendu avec les chiffres correspondants **. Essayez juste de penser avec la tête d'un étranger. Je n'ai aucune idée, ce que vous faites ... Best est un [MCVE (Détails ici)] (http://stackoverflow.com/help/mcve) – Shnugo

+0

En outre plus: Votre requête ne correspond pas aux tableaux donnés. Il n'y a pas de "yearstart" ou "yearend" dans vos exemples de tables ... Fournir un ** MCVE ** vous aiderait à KISS (* le garder petit et simple *) et cela aiderait à éviter de telles erreurs gênantes ... – Shnugo

+0

Encore un conseil: Regardez votre question précédente. J'ai fait votre travail là pour vous ... Voir comment les variables de table sont déclarées et remplies? C'est exactement ce que vous devriez faire ici (avec ** réduit !! ** données) – Shnugo

Répondre

0

Ma magie ampoule en verre me dit, que vous pourriez être à la recherche de quelque chose comme ceci:

Mais (voir mes commentaires ci-dessous votre question) il y a beaucoup pas clea 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

Merci Shnugo - qui a travaillé avec quelques modifications –