我是說,可不可以把采購單號與行號和單價合併為一個字符串作為一個字段來處理
可以嗎?SQL表達式請看下面。
SELECT
PL.LINE_NUM "LINE_NUM",
PL.CREATION_DATE "CREATION DATE",
PL.LAST_UPDATE_DATE AS UPDATE_DATE,
FU.USER_NAME AS USER_NAME,
PV.VENDOR_NAME "SUPPLIER",
PVS.VENDOR_SITE_CODE "SUPPLIER_SITE",
PH.SEGMENT1 "PO_NO",
MS.SEGMENT1 "ITEM",
PL.ITEM_DESCRIPTION "DESCRIPTION",
PL.UNIT_MEAS_LOOKUP_CODE "UOM",
' ' "COMMENTS",
PL.ITEM_REVISION "REVISION",
PH.AUTHORIZATION_STATUS "STATUS",
PH.CURRENCY_CODE "CURRENCY",
PL.CANCEL_FLAG "CANCEL",
PL.CLOSED_CODE "CLOSED",
PL.UNIT_PRICE "PRICE"
FROM
MTL_SYSTEM_ITEMS_B MS,
PO_HEADERS_ALL PH,
PO_LINES_ALL PL,
PO_VENDORS PV,
PO_VENDOR_SITES_ALL PVS,
FND_USER FU,
(select PH1.VENDOR_ID,PVS1.VENDOR_SITE_ID,PL1.ITEM_ID
from PO_HEADERS_ALL PH1, PO_LINES_ALL PL1, PO_VENDORS PV1,PO_VENDOR_SITES_ALL PVS1,MTL_SYSTEM_ITEMS_B MS1
where PH1.PO_HEADER_ID = PL1.PO_HEADER_ID
and PH1.VENDOR_ID = PV1.VENDOR_ID(+)
and PH1.VENDOR_SITE_ID = PVS1.VENDOR_SITE_ID(+)
and PH1.ORG_ID = MS1.ORGANIZATION_ID
and PL1.ITEM_ID = MS1.INVENTORY_ITEM_ID
and nvl(ph1.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(ph1.CANCEL_FLAG,'N')='N'
and nvl(pl1.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(pl1.CANCEL_FLAG,'N')='N'
and PH1.ORG_ID = :P_OU_ID
and PH1.AUTHORIZATION_STATUS = NVL(:P_STUTAS,PH1.AUTHORIZATION_STATUS)
and PH1.TYPE_LOOKUP_CODE = 'BLANKET'
and PH1.SEGMENT1 BETWEEN NVL(:P_PO_NO_START,PH1.SEGMENT1) AND NVL(:P_PO_NO_END,PH1.SEGMENT1)
and MS1.SEGMENT1 = NVL(:P_ITEM,MS1.SEGMENT1)
and PV1.VENDOR_NAME = NVL(:P_VENDOR,PV1.VENDOR_NAME)
and PH1.CREATION_DATE BETWEEN NVL(:P_FROM_TRANSACTION_DATE,PH1.CREATION_DATE) AND NVL(:P_TO_TRANSACTION_DATE,PH1.CREATION_DATE)
group by PH1.VENDOR_ID,PVS1.VENDOR_SITE_ID,PL1.ITEM_ID
having count(*) > 1 and min(pl1.UNIT_PRICE) <> max(pl1.UNIT_PRICE)) a1
WHERE PH.PO_HEADER_ID = PL.PO_HEADER_ID
AND PL.CREATED_BY =FU.USER_ID
AND PL.ITEM_ID = MS.INVENTORY_ITEM_ID
and nvl(ph.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(ph.CANCEL_FLAG,'N')='N'
and nvl(pl.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(pl.CANCEL_FLAG,'N')='N'
AND PVS.VENDOR_SITE_ID(+) =PH.VENDOR_SITE_ID
AND PV.VENDOR_ID(+) =PH.VENDOR_ID
AND PH.ORG_ID = MS.ORGANIZATION_ID
AND PH.ORG_ID = :P_OU_ID
AND PH.AUTHORIZATION_STATUS = NVL(:P_STUTAS,PH.AUTHORIZATION_STATUS)
AND PH.TYPE_LOOKUP_CODE = 'BLANKET'
AND PH.SEGMENT1 BETWEEN NVL(:P_PO_NO_START,PH.SEGMENT1) AND NVL(:P_PO_NO_END,PH.SEGMENT1)
AND MS.SEGMENT1 = NVL(:P_ITEM,MS.SEGMENT1)
AND PV.VENDOR_NAME = NVL(:P_VENDOR,PV.VENDOR_NAME)
AND PH.CREATION_DATE BETWEEN NVL(:P_FROM_TRANSACTION_DATE,PH.CREATION_DATE) AND NVL(:P_TO_TRANSACTION_DATE,PH.CREATION_DATE)
and a1.VENDOR_ID = PH.VENDOR_ID
and a1.VENDOR_SITE_ID=PH.VENDOR_SITE_ID
and a1.ITEM_ID = PL.ITEM_ID
ORDER BY 5,6,8
可以嗎?SQL表達式請看下面。
SELECT
PL.LINE_NUM "LINE_NUM",
PL.CREATION_DATE "CREATION DATE",
PL.LAST_UPDATE_DATE AS UPDATE_DATE,
FU.USER_NAME AS USER_NAME,
PV.VENDOR_NAME "SUPPLIER",
PVS.VENDOR_SITE_CODE "SUPPLIER_SITE",
PH.SEGMENT1 "PO_NO",
MS.SEGMENT1 "ITEM",
PL.ITEM_DESCRIPTION "DESCRIPTION",
PL.UNIT_MEAS_LOOKUP_CODE "UOM",
' ' "COMMENTS",
PL.ITEM_REVISION "REVISION",
PH.AUTHORIZATION_STATUS "STATUS",
PH.CURRENCY_CODE "CURRENCY",
PL.CANCEL_FLAG "CANCEL",
PL.CLOSED_CODE "CLOSED",
PL.UNIT_PRICE "PRICE"
FROM
MTL_SYSTEM_ITEMS_B MS,
PO_HEADERS_ALL PH,
PO_LINES_ALL PL,
PO_VENDORS PV,
PO_VENDOR_SITES_ALL PVS,
FND_USER FU,
(select PH1.VENDOR_ID,PVS1.VENDOR_SITE_ID,PL1.ITEM_ID
from PO_HEADERS_ALL PH1, PO_LINES_ALL PL1, PO_VENDORS PV1,PO_VENDOR_SITES_ALL PVS1,MTL_SYSTEM_ITEMS_B MS1
where PH1.PO_HEADER_ID = PL1.PO_HEADER_ID
and PH1.VENDOR_ID = PV1.VENDOR_ID(+)
and PH1.VENDOR_SITE_ID = PVS1.VENDOR_SITE_ID(+)
and PH1.ORG_ID = MS1.ORGANIZATION_ID
and PL1.ITEM_ID = MS1.INVENTORY_ITEM_ID
and nvl(ph1.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(ph1.CANCEL_FLAG,'N')='N'
and nvl(pl1.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(pl1.CANCEL_FLAG,'N')='N'
and PH1.ORG_ID = :P_OU_ID
and PH1.AUTHORIZATION_STATUS = NVL(:P_STUTAS,PH1.AUTHORIZATION_STATUS)
and PH1.TYPE_LOOKUP_CODE = 'BLANKET'
and PH1.SEGMENT1 BETWEEN NVL(:P_PO_NO_START,PH1.SEGMENT1) AND NVL(:P_PO_NO_END,PH1.SEGMENT1)
and MS1.SEGMENT1 = NVL(:P_ITEM,MS1.SEGMENT1)
and PV1.VENDOR_NAME = NVL(:P_VENDOR,PV1.VENDOR_NAME)
and PH1.CREATION_DATE BETWEEN NVL(:P_FROM_TRANSACTION_DATE,PH1.CREATION_DATE) AND NVL(:P_TO_TRANSACTION_DATE,PH1.CREATION_DATE)
group by PH1.VENDOR_ID,PVS1.VENDOR_SITE_ID,PL1.ITEM_ID
having count(*) > 1 and min(pl1.UNIT_PRICE) <> max(pl1.UNIT_PRICE)) a1
WHERE PH.PO_HEADER_ID = PL.PO_HEADER_ID
AND PL.CREATED_BY =FU.USER_ID
AND PL.ITEM_ID = MS.INVENTORY_ITEM_ID
and nvl(ph.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(ph.CANCEL_FLAG,'N')='N'
and nvl(pl.CLOSED_CODE,'OPEN') not in ('FINALLY CLOSED','FROZEN')
and nvl(pl.CANCEL_FLAG,'N')='N'
AND PVS.VENDOR_SITE_ID(+) =PH.VENDOR_SITE_ID
AND PV.VENDOR_ID(+) =PH.VENDOR_ID
AND PH.ORG_ID = MS.ORGANIZATION_ID
AND PH.ORG_ID = :P_OU_ID
AND PH.AUTHORIZATION_STATUS = NVL(:P_STUTAS,PH.AUTHORIZATION_STATUS)
AND PH.TYPE_LOOKUP_CODE = 'BLANKET'
AND PH.SEGMENT1 BETWEEN NVL(:P_PO_NO_START,PH.SEGMENT1) AND NVL(:P_PO_NO_END,PH.SEGMENT1)
AND MS.SEGMENT1 = NVL(:P_ITEM,MS.SEGMENT1)
AND PV.VENDOR_NAME = NVL(:P_VENDOR,PV.VENDOR_NAME)
AND PH.CREATION_DATE BETWEEN NVL(:P_FROM_TRANSACTION_DATE,PH.CREATION_DATE) AND NVL(:P_TO_TRANSACTION_DATE,PH.CREATION_DATE)
and a1.VENDOR_ID = PH.VENDOR_ID
and a1.VENDOR_SITE_ID=PH.VENDOR_SITE_ID
and a1.ITEM_ID = PL.ITEM_ID
ORDER BY 5,6,8
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货