SELECT
TC_TXN.BOOKING_REF_ID,
TC_TXN.CREATION_TIME,
IFNULL(MAN_REQ.SUB_COMPANY_CODE,"") AS "SUB_COMPANY_CODE",
IFNULL(CONCAT(' / ',SUBSTRING_INDEX(SUB_COMP.BV_GROUP_FQN_NAME,'/',-1)),"") AS SUB_COMPANY_NAME,
"Company" AS "BILL_TO",
"" AS "REF",
BV_ENUM.VALUE,
MI_TXN.PRODUCT_CHARGES,
IFNULL(TC_TXN.VENDOR_PAYABLE_AMOUNT,0) AS VENDOR_AMOUNT,
IFNULL(MAN_REQ.TICKET_NO,(select TICKET_NO from TC_FLIGHTS_BOOK tfb join TC_TRANSACTION tcx on(tcx.TRANSACTION_ID=tfb.TRANSACTION_ID) join TC_FB_FARE_DETAILS tf on (tf.OID=tfb.OID) limit 1)) AS "TICKET_NO",
IFNULL(TC_FB.SP_PNR_NO,IFNULL(MAN_REQ.PNR_NO,"")) AS "PNR_NO",
MAN_REQ.TOUR_CODE,
TC_TXN.TRANSACTION_ID,
TC_TXN.REQUEST_ID,
MAN_REQ.EMPLOYE_ID,
"" AS "TCID"
FROm TC_TRANSACTION TC_TXN
LEFT JOIN MANUAL_INVOICE_TRANSACTION MI_TXN ON (TC_TXN.TRANSACTION_ID = MI_TXN.TRANSACTION_ID)
LEFT JOIN MANUAL_INVOICE_REQUEST MAN_REQ ON (MAN_REQ.REQUEST_ID = MI_TXN.REQUEST_ID)
LEFT JOIN TCP_ORGANIZATION SUB_COMP ON (SUB_COMP.ORGANIZATION_ID = TC_TXN.CUSTOMER_CODE)
LEFT JOIN BV_ENUM_VALUES BV_ENUM ON (TC_TXN.BOOKING_TYPE = BV_ENUM.INT_CODE AND BV_ENUM.TYPE_NAME = 'BOOKING_TYPE')
LEFT JOIN TC_FB_FLIGHT_DETAILS TC_FB ON (TC_FB.OID=TC_TXN.OID)
WHERE
TC_TXN.CREATION_TIME>=? and TC_TXN.CREATION_TIME<= ? AND TC_TXN.CURRENT_BOOKING_STATUS=0
GROUP BY TC_TXN.TRANSACTION_ID
当我为ticket_no列运行此查询时,仅提取第一个数据。剩余的列正确获取。我正在尝试解决此错误超过2天。 提前致谢
答案 0 :(得分:0)
根据OP的评论(“对于每一行,ticket_no值相同”),问题是ticket_no
字段的子查询不是相关的。这意味着它的值不依赖于外部查询中的任何值:
...
IFNULL(MAN_REQ.TICKET_NO,(select TICKET_NO from TC_FLIGHTS_BOOK tfb join TC_TRANSACTION tcx on(tcx.TRANSACTION_ID=tfb.TRANSACTION_ID) join TC_FB_FARE_DETAILS tf on (tf.OID=tfb.OID) limit 1)) AS "TICKET_NO",
...
这也意味着MAN_REQ.TICKET_NO
字段始终为空,这就引出了为什么它首先存在的问题。
由于问题与数据有关,问题没有描述表格的相关性,也没有提供任何样本数据,我无法提供准确的解决方案,只能指出根本原因。