【发布时间】:2015-05-31 14:31:04
【问题描述】:
我想知道为什么我的数据没有被第二级主键过滤到第三级。 在第一级中,我将项目 ID 作为 PREFNO 传递,然后在根据 ITEM_ID 检索数据之后。第二级使用 ITEM_ID 查找 LEVEL_ID 的主键并根据 LEVEL_ID 检索维度。但是我的尺寸在过滤部分重复其平均值不起作用。当我沿着它不重复运行我的维度查询时。但是将相同的查询添加到 en trier xmltype 查询中会重复
SELECT XMLAGG(XMLELEMENT ("UomDimensions",
XMLFOREST ("DimensionId" AS "DimensionId",
"DimensionName" AS "DimensionName",
"DimensionValue" AS "DimensionValue")))
FROM (SELECT P.DIMENSION_ID AS "DimensionId",
P.DIMENSION_DESC AS "DimensionName",
0 AS "DimensionValue"
FROM BIZZXE_V2_SCH.DIMENSION_SETTINGS O, BIZZXE_V2_SCH.DIMENSIONS P
WHERE P.DIMENSION_ID = O.DIMENSION_ID
AND O.SETTING_PROPERTY_ID = 42
AND O.SETTING_VALUE = 1
AND P.DIMENSION_ID NOT IN (
SELECT P.DIMENSION_ID
FROM BIZZXE_V2_SCH.DIMENSIONS P, BIZZXE_V2_SCH.ITEM_UOM_LEVEL_DIMNSIONS Q, BIZZXE_V2_SCH.ITEM_UOM_LEVELS X, BIZZXE_V2_SCH.ITEMS A
WHERE A.ITEM_ID = X.ITEM_ID
AND X.LEVEL_ID = Q.LEVEL_ID
-- AND X.LEVEL_ID = K.LEVEL_ID
AND Q.DIMENSION_ID = P.DIMENSION_ID
AND A.ITEM_ID = PREF_NO )
UNION
SELECT P.DIMENSION_ID AS "DimensionId",
P.DIMENSION_DESC AS "DimensionName",
Q.DIMENSION_VALUE AS "DimensionValue"
FROM BIZZXE_V2_SCH.ITEMS A, BIZZXE_V2_SCH.ITEM_UOM_LEVELS Z, BIZZXE_V2_SCH.DIMENSIONS P, BIZZXE_V2_SCH.ITEM_UOM_LEVEL_DIMNSIONS Q
WHERE A.ITEM_ID = PREF_NO
AND A.ITEM_ID = Z.ITEM_ID
AND Q.DIMENSION_ID = P.DIMENSION_ID
-- AND Q.LEVEL_ID = K.LEVEL_ID
AND Q.LEVEL_ID = Z.LEVEL_ID))
这是我的全部查询
SELECT
XMLELEMENT ( "OBJECT",
XMLELEMENT ( "Item",
XMLFOREST( 1 AS "LocationId",
A.ITEM_ID AS "Id",
A.ITEM_ID AS "ItemId",
A.REMARKS AS "Remarks",
A.CODE AS "ItemCode",
A.NAME AS "ItemDescription",
A.SHORT_NAME AS "ItemShortName",
A.HS_CODE_ID AS "HsCodeId",
B.HS_CODE AS "HsCodeName",
A.BRAND_ID AS "ItemBrandId",
C.BRAND_DESCRIPTION AS "ItemBrandName",
A.CAT_ID AS "CategoryId",
D.ITEM_CAT_DESC AS "CategoryName",
A.VARIANT_TEMP_ID AS "VariantTemplateId",
E.VARIANT_TEMP_NAME AS "VarinatTemplateName",
(SELECT
XMLAGG(XMLELEMENT ("ItemUomLevels",
XMLFOREST (K.UOM_LEVEL AS "UomLevelId",
K.UOM_ID AS "UomId",
L.DESCRIPTION AS "Uom",
K.LONG_NAME AS "UomLongName",
K.CONV_FACTR AS "ConversionFactor",
K.STATUS_ID AS "UomLevelStatus",
K.SYS_USAGE_ID AS "UomLevelSystemUsageTypeId",
H.SYS_USAGE_NAME AS "UomLevelSystemUsageType",
K.IMAGE AS "UomLevelImage",
K.UOM_LEVEL_VOLUME AS "UomLevelVolume",
(SELECT
UNIQUE CASE
WHEN S.ITEM_ID<>0 THEN 1
END AS "UomLevelEditable"
FROM
BIZZXE_V2_SCH.PO_REQUEST_ITEMS S
WHERE
S.ITEM_Id = PREF_NO
AND S.UOM_ID= L.UOM_ID) AS "UomLevelEditable",
(SELECT
XMLAGG(XMLELEMENT ("UomDimensions",
XMLFOREST ("DimensionId" AS "DimensionId",
"DimensionName" AS "DimensionName",
"DimensionValue" AS "DimensionValue")))
FROM
(SELECT
P.DIMENSION_ID AS "DimensionId",
P.DIMENSION_DESC AS "DimensionName",
0 AS "DimensionValue"
FROM
BIZZXE_V2_SCH.DIMENSION_SETTINGS O,
BIZZXE_V2_SCH.DIMENSIONS P
WHERE
P.DIMENSION_ID = O.DIMENSION_ID
AND O.SETTING_PROPERTY_ID = 42
AND O.SETTING_VALUE = 1
AND P.DIMENSION_ID NOT IN ( SELECT
P.DIMENSION_ID
FROM
BIZZXE_V2_SCH.DIMENSIONS P,
BIZZXE_V2_SCH.ITEM_UOM_LEVEL_DIMNSIONS Q,
BIZZXE_V2_SCH.ITEM_UOM_LEVELS X,
BIZZXE_V2_SCH.ITEMS A
WHERE
A.ITEM_ID = X.ITEM_ID
AND X.LEVEL_ID = Q.LEVEL_ID
-- AND X.LEVEL_ID = K.LEVEL_ID
AND Q.DIMENSION_ID = P.DIMENSION_ID
AND A.ITEM_ID = PREF_NO )
UNION
SELECT
P.DIMENSION_ID AS "DimensionId",
P.DIMENSION_DESC AS "DimensionName",
Q.DIMENSION_VALUE AS "DimensionValue"
FROM
BIZZXE_V2_SCH.ITEMS A,
BIZZXE_V2_SCH.ITEM_UOM_LEVELS Z,
BIZZXE_V2_SCH.DIMENSIONS P,
BIZZXE_V2_SCH.ITEM_UOM_LEVEL_DIMNSIONS Q
WHERE
A.ITEM_ID = PREF_NO
AND A.ITEM_ID = Z.ITEM_ID
AND Q.DIMENSION_ID = P.DIMENSION_ID
-- AND Q.LEVEL_ID = K.LEVEL_ID
AND Q.LEVEL_ID = Z.LEVEL_ID )) AS "UomDimensionsList")))
FROM
BIZZXE_V2_SCH.ITEM_UOM_LEVELS K,
BIZZXE_V2_SCH.UOMS L,
BIZZXE_V2_SCH.ITEM_SYSTEM_USAGES H
WHERE
A.ITEM_ID = PREF_NO
AND A.ITEM_ID = K.ITEM_ID
AND K.SYS_USAGE_ID = H.SYS_USAGE_ID
AND K.UOM_ID = L.UOM_ID)AS "ItemUomLevelsList")))
INTO
varXml
FROM
BIZZXE_V2_SCH.ITEMS A,
BIZZXE_V2_SCH.HS_CODES B,
BIZZXE_V2_SCH.BRANDS C,
BIZZXE_V2_SCH.ITEM_CATEGORIES D,
BIZZXE_V2_SCH.VARIANT_TEMPLATES E
WHERE
A.ITEM_ID = PREF_NO
AND A.HS_CODE_ID = B.HS_CODE_ID
AND C.BRAND_ID = A.BRAND_ID
AND D.ITEM_CAT_ID = A.CAT_ID
AND A.VARIANT_TEMP_ID = E.VARIANT_TEMP_ID;
【问题讨论】:
标签: sql oracle11g oracle-apex appendchild xmltype