parserTest.htm 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <!--
  2. Licensed Materials - Property of IBM
  3. BI and PM: QFW
  4. © Copyright IBM Corp. 2005, 2014
  5. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  6. -->
  7. <html xmlns:v="urn:schemas-microsoft-com:vml">
  8. <head>
  9. <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
  10. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  11. <meta name="Copyright" content="Copyright IBM Corp. 2005, 2014" />
  12. <link rel="stylesheet" type="text/css" href="../QFLogFormatting.css"/>
  13. <style>
  14. .test { border: black 1px solid; color: black; margin: 5px; font-size: 100%; background-color: white; }
  15. .input { padding-left: 10px; }
  16. .result { padding-left: 10px; color: darkblue; }
  17. .formatted i { background-color: white; FONT-WEIGHT: normal; FONT-STYLE: normal }
  18. .formatted b { background-color: cyan; FONT-WEIGHT: normal; FONT-STYLE: normal }
  19. </style>
  20. <script> G_HALOptions = {"isApplication": true, "path": "../../"}; </script>
  21. <!--script src="../../hal/hal.js"></script>
  22. <script src="../../cchl/cchl.js"></script-->
  23. <script src="C_QanParser.js" > </script>
  24. <script src="G_QanPrettyPrint.js" > </script>
  25. <script>
  26. function testApplyTransformations()
  27. {
  28. var v_oSQLParser = new C_QanParser();
  29. var v_divTestSuite = document.getElementById( "testSuite" );
  30. for( var i = 0; i < v_divTestSuite.children.length; ++i )
  31. {
  32. var v_divTest = v_divTestSuite.children[i];
  33. var v_sText = v_divTest.children[0].innerText;
  34. var v_xmlResult = v_oSQLParser.F_TransformToXML( v_sText, v_divTest.type );
  35. var v_divFormatted = document.createElement( "div" );
  36. v_divFormatted.className = "formatted";
  37. // v_divFormatted.innerHTML = v_oSQLParser.F_TransformToHTML( v_xmlResult );
  38. v_divFormatted.innerHTML = v_oSQLParser.F_TransformBlockToHTML( v_xmlResult );
  39. if( v_divTest.type == "MDX" )
  40. v_divFormatted.onclick =
  41. function() { G_QanPrettyPrint.F_OnClick(event.srcElement, null, "MDX"); };
  42. else
  43. v_divFormatted.onclick =
  44. function() { G_QanPrettyPrint.F_OnClick(event.srcElement); };
  45. v_divTest.appendChild( v_divFormatted );
  46. var v_divResult = document.createElement( "div" );
  47. v_divResult.className = "result";
  48. v_divResult.innerText = v_xmlResult.xml;
  49. v_divTest.appendChild( v_divResult );
  50. }
  51. }
  52. </script>
  53. </head>
  54. <body style="OVERFLOW: auto; WIDTH: 100%" onload="testApplyTransformations();" >
  55. <div id="testSuite">
  56. <div class="test">
  57. <div class="input">Select A from T where a=b and b=c and c=d</div>
  58. </div>
  59. <div class="test" type="MDX">
  60. <div class="input" >
  61. WITH MEMBER [ZQ1AUTCTR].[COG_OQP_INT_t1] AS '1', SOLVE_ORDER = 65535, MEMBER_CAPTION = '' MEMBER [ZQ1AUTCTR].[COG_OQP_INT_t2] AS '1', SOLVE_ORDER = 65535, MEMBER_CAPTION = '' MEMBER [ZQ1AUTCTR].[COG_OQP_INT_t3] AS '1', SOLVE_ORDER = 65535, MEMBER_CAPTION = '' MEMBER [ZQ1AUTCTR].[COG_OQP_INT_umg1] AS '([ZQ1AUTCTR].[All])', SOLVE_ORDER = 4, MEMBER_CAPTION = 'Aggregate(Country)' MEMBER [ZQ1AUTCTR].[COG_OQP_INT_umg2] AS '([ZQ1AUTCTR].[All])', SOLVE_ORDER = 4, MEMBER_CAPTION = 'Aggregate(Country (All))' SELECT {[Measures].[ZQ1AUTCOS]} DIMENSION PROPERTIES PARENT_LEVEL, CHILDREN_CARDINALITY ON AXIS(0), UNION(UNION(UNION(UNION(UNION(UNION([ZQ1AUTCTR].[LEVEL01].MEMBERS, {([ZQ1AUTCTR].[COG_OQP_INT_t1])}, ALL), {[ZQ1AUTCTR].[COG_OQP_INT_umg1]}, ALL), {([ZQ1AUTCTR].[COG_OQP_INT_t2])}, ALL), [ZQ1AUTCTR].[LEVEL00].MEMBERS, ALL), {([ZQ1AUTCTR].[COG_OQP_INT_t3])}, ALL), {[ZQ1AUTCTR].[COG_OQP_INT_umg2]}, ALL) DIMENSION PROPERTIES PARENT_LEVEL, CHILDREN_CARDINALITY ON AXIS(1) FROM [$ZQ1AUTC01]
  62. </div>
  63. </div>
  64. <div class="test" type="MDX">
  65. <div class="input" >
  66. SELECT {[Measures].[ZQ1AUTCOS]} DIMENSION PROPERTIES PARENT_LEVEL, CHILDREN_CARDINALITY ON AXIS(0),
  67. [ZQ1AUTCNT].[LEVEL01].MEMBERS DIMENSION PROPERTIES PARENT_LEVEL, CHILDREN_CARDINALITY ON AXIS(1)
  68. FROM [$ZQ1AUTC01]
  69. </div>
  70. </div>
  71. <div class="test">
  72. <div class="input">Select (T1.C)as "D""C" from T join (Select 4 from D3) T1 on T1.A = T.C</div>
  73. </div>
  74. <div class="test">
  75. <div class="input">Select T.A as V, "A"+T.B as "AA""CC", T1.C as "D" from T join (Select 4 from D3) T1 on T1.A = T.C</div>
  76. </div>
  77. <div class="test">
  78. <div class="input">Select T.*, "A"+T.B, T1.C as "D" from T join (Select 4 from D3) T1 on T1.A = T.C</div>
  79. </div>
  80. <div class="test">
  81. <div class="input">Select (A from B) from T where A=1</div>
  82. </div>
  83. <div class="test">
  84. <div class="input">
  85. with Time_dimension6 as (select TIME_DIMENSION.DAY_KEY, TIME_DIMENSION.DAY_DATE, TIME_DIMENSION.MONTH_KEY, TIME_DIMENSION.CURRENT_MONTH, TIME_DIMENSION.QUARTER_KEY, TIME_DIMENSION.CURRENT_QUARTER, TIME_DIMENSION.CURRENT_YEAR, TIME_DIMENSION.DAY_OF_WEEK, TIME_DIMENSION.DAY_OF_MONTH, TIME_DIMENSION.DAYS_IN_MONTH, TIME_DIMENSION.DAY_OF_YEAR, TIME_DIMENSION.WEEK_OF_MONTH, TIME_DIMENSION.WEEK_OF_QUARTER, TIME_DIMENSION.WEEK_OF_YEAR, TIME_DIMENSION.WEEKDAY_EN as WEEKDAY, TIME_DIMENSION.MONTH_EN as MONTH1 from gosales...TIME_DIMENSION), Sales__model_ as (select (((extract(year from Order_header8.ORDER_DATE) * 10000) + (extract(month from Order_header8.ORDER_DATE) * 100)) + extract(day from Order_header8.ORDER_DATE)) as Day_key__order_date_, (Order_details7.QUANTITY * Order_details7.UNIT_SALE_PRICE) as Revenue from gosales...ORDER_DETAILS Order_details7, gosales...ORDER_HEADER Order_header8 where (Order_header8.ORDER_NUMBER = Order_details7.ORDER_NUMBER) ) select cast(Time_dimension9.CURRENT_YEAR as character (4)) as Yearkey, XSUM(Sales__model_.Revenue for cast(Time_dimension9.CURRENT_YEAR as character (4)) ) as Revenue from Time_dimension6 Time_dimension9, Sales__model_ where (Time_dimension9.DAY_KEY = Sales__model_.Day_key__order_date_) group by cast(Time_dimension9.CURRENT_YEAR as character (4))
  86. </div>
  87. </div>
  88. <div class="test">
  89. <div class="input">
  90. select distinct
  91. PRODUCTLINE.PRODUCTLINE as PRODUCTLINE
  92. from
  93. GOSALES_ORACLE..GOSALES.PRODUCTLINE PRODUCTLINE
  94. </div>
  95. </div>
  96. <div class="test">
  97. <div class="input">
  98. select distinct
  99. PRODUCTLINE.PRODUCTLINE as PRODUCTLINE,
  100. PRODUCTTYPE.PRODUCTTYPE as PRODUCTTYPE
  101. from
  102. GOSALES_ORACLE..GOSALES.PRODUCTLINE PRODUCTLINE,
  103. GOSALES_ORACLE..GOSALES.PRODUCTTYPE PRODUCTTYPE
  104. where
  105. (PRODUCTLINE.PRODUCTLINECODE = PRODUCTTYPE.PRODUCTLINECODE)
  106. order by
  107. PRODUCTLINE asc
  108. </div>
  109. </div>
  110. <div class="test">
  111. <div class="input">
  112. select
  113. "Product_line13"."PRODUCT_LINE_CODE" AS "memberUniqueName2",
  114. min("Product_line13"."PRODUCT_LINE")AS "Product_line",
  115. sum("coguda10"."QUANTITY" * "coguda10"."UNIT_SALE_PRICE")AS "Revenue"
  116. from
  117. (
  118. select
  119. "PRODUCT_LINE"."PRODUCT_LINE_CODE" AS "PRODUCT_LINE_CODE",
  120. min("PRODUCT_LINE"."PRODUCT_LINE_EN")AS "PRODUCT_LINE"
  121. from
  122. "PRODUCT_LINE"
  123. group by
  124. "PRODUCT_LINE"."PRODUCT_LINE_CODE"
  125. )"Product_line13",
  126. "ORDER_DETAILS" "coguda10",
  127. "ORDER_HEADER" "coguda11",
  128. (
  129. select
  130. "PRODUCT"."PRODUCT_NUMBER" AS "PRODUCT_NUMBER",
  131. min("PRODUCT"."PRODUCT_TYPE_CODE")AS "PRODUCT_TYPE_CODE"
  132. from
  133. "PRODUCT"
  134. group by
  135. "PRODUCT"."PRODUCT_NUMBER"
  136. )"Product15",
  137. (
  138. select
  139. "PRODUCT_TYPE"."PRODUCT_TYPE_CODE" AS "PRODUCT_TYPE_CODE",
  140. min("PRODUCT_TYPE"."PRODUCT_LINE_CODE")AS "PRODUCT_LINE_CODE"
  141. from
  142. "PRODUCT_TYPE"
  143. group by
  144. "PRODUCT_TYPE"."PRODUCT_TYPE_CODE"
  145. )"Product_type16"
  146. where
  147. "coguda11"."ORDER_NUMBER" = "coguda10"."ORDER_NUMBER" and "Product_line13"."PRODUCT_LINE_CODE" = "Product_type16"."PRODUCT_LINE_CODE" and "Product_type16"."PRODUCT_TYPE_CODE" = "Product15"."PRODUCT_TYPE_CODE" and "Product15"."PRODUCT_NUMBER" = "coguda10"."PRODUCT_NUMBER"
  148. group by
  149. "Product_line13"."PRODUCT_LINE_CODE"
  150. </div>
  151. </div>
  152. </div>
  153. <script><!--
  154. G_HAL.F_Include( "../../hal/D_XmlError.js" );
  155. // --></script>
  156. <script><!--
  157. G_HAL.F_WriteHtml();
  158. --></script>
  159. </body>
  160. </html>