2017-07-17 44 views
-3
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天。 在此先感谢只有一个数据从sql获取

+0

ticket_no字段的子查询不是相关的,这意味着它将为所有记录返回相同的值。但我并不真正理解这个问题,所以我不能确定这是否是错误的原因。请以更明确的方式描述您的意思是“仅获取第一笔数据” – Shadow

+0

对于ticket_no值相同的每一行。 –

+0

请参阅https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-询问 – Strawberry

回答

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场总是空,这引出了一个问题,为什么它的存在摆在首位。

由于问题与数据有关,问题没有描述表格如何关联,也没有提供任何示例数据,我无法提供确切的解决方案,只能指出根本原因。