Sql 内部查询返回多行
上述查询未执行,因为 内部查询返回多行Sql 内部查询返回多行,sql,oracle,Sql,Oracle,上述查询未执行,因为 内部查询返回多行 单独运行以下子查询,查看哪个子查询返回多行,因为您可能需要使用DISTINCT(或Group By)或在where子句中添加另一个条件,使其唯一(取决于您的数据)。如果子查询返回多行,则不能作为完整查询运行 SELECT FORM_OF_PAYMENT_CD paymentMethod, DECODE (CC_TYPE_CD, 'V', 'VS', 'M', 'MC', 'A', 'AM', 'D', 'DC', NULL) pay
单独运行以下子查询,查看哪个子查询返回多行,因为您可能需要使用DISTINCT(或Group By)或在where子句中添加另一个条件,使其唯一(取决于您的数据)。如果子查询返回多行,则不能作为完整查询运行
SELECT
FORM_OF_PAYMENT_CD paymentMethod,
DECODE (CC_TYPE_CD, 'V', 'VS', 'M', 'MC', 'A', 'AM', 'D', 'DC', NULL) paymentSubMethod,
PAYMENT_AMOUNT amount,
LPAD(SUBSTR(trim(PCI_PKG.D_CC(op.CC_NUMBER, 654916320742196284)),
LENGTH(trim(PCI_PKG.D_CC(op.CC_NUMBER, 654916320742196284)))-3),
LENGTH(trim(PCI_PKG.D_CC(op.CC_NUMBER, 654916320742196284))) , '*') ccNumber,
CC_EXP_DATE ccExpirationDate,
IAI.ADDRESS addressLine1,
IAI.ZIP zipCode,
IAI.ZIP_EXTENSION zip4Code,
DECODE(ORM.EPP_CHANNEL_ID, NULL, NULL, (ORM.EPP_CHANNEL_ID ||'^' || ORM.EPP_ACTOR_ID ||'^' || OP.EPP_TOKEN_ID ||'^' || OP.EPP_TOKEN_TYPE ||'^' || (
SELECT DISTINCT AUTH.EPP_PAYMENT_ID
FROM OEMADM.AUTHORIZATION_INFO AUTH
WHERE AUTH.ORDER_KEY= OP.ORDER_KEY )) ) eppPaymentInfo,
(SELECT AI.AUTH_CODE
FROM AUTHORIZATION_INFO AI
WHERE AI.PAYMENT_TYPE_CD = op.PAYMENT_TYPE_CD
AND AI.ORDER_KEY = op.ORDER_KEY
AND AI.AUTH_TYPE_CD = 'PRE' ) AUTHORIZATION_CODE,
(SELECT AI.AUTH_STATUS_DESC
FROM AUTHORIZATION_INFO AI
WHERE AI.PAYMENT_TYPE_CD = op.PAYMENT_TYPE_CD
AND AI.ORDER_KEY = op.ORDER_KEY
AND AI.AUTH_TYPE_CD = 'PRE' ) PRE_AUTHORIZATION_MSG,
(SELECT UPDATED_DT
FROM SETTLEMENT_REFUND_RESP
WHERE TRANSACTION_TYPE_CODE = 'SET'
AND PAYMENT_TYPE_CD ='DQP'
AND ORDER_KEY = OP.ORDER_KEY ) REQUEST_DATE ,
OP.PAYMENT_TYPE_CD paymentTypeCode
FROM
OEMADM.ORDER_PAYMENTS OP,
OEMADM.IDENT_ADDRESS_INFO IAI,
OEMADM.ORDER_MASTER ORM
WHERE
OP.ORDER_KEY = 'ow-srso-229451126'
AND ORM.ORDER_KEY = OP.ORDER_KEY
AND IAI.IDENT_ADDR_INFO_ID = OP.PAYER_ADDR_INFO_ID
好的,很高兴知道。也许把它们改成相关查询。你可以在子查询中使用max()和min()函数。威尔只是说你可以单独检查每个子查询,并检查重复的内容。如果它们实际上是相同的,只是增加了一倍,您可以对它们使用
DISTINCT
。否则,您将需要一个聚合(如果可能的话)。您也可以加入表,改为修改语句以解决此问题。-在ANSI-92 SQL标准中(20多年前),旧样式的逗号分隔表列表样式被正确的ANSIJOIN
语法所取代,不鼓励使用它
(SELECT AI.AUTH_CODE FROM AUTHORIZATION_INFO AI WHERE AI.PAYMENT_TYPE_CD = op.PAYMENT_TYPE_CD AND AI.ORDER_KEY = op.ORDER_KEY AND AI.AUTH_TYPE_CD = 'PRE' )
(SELECT AI.AUTH_STATUS_DESC FROM AUTHORIZATION_INFO AI WHERE AI.PAYMENT_TYPE_CD = op.PAYMENT_TYPE_CD AND AI.ORDER_KEY = op.ORDER_KEY AND AI.AUTH_TYPE_CD = 'PRE' )
(SELECT UPDATED_DT FROM SETTLEMENT_REFUND_RESP WHERE TRANSACTION_TYPE_CODE = 'SET' AND PAYMENT_TYPE_CD ='DQP' AND ORDER_KEY = OP.ORDER_KEY ) REQUEST_DATE ,