excel mysql不能读取所有select语句

我创build一个ODBC连接来从Excel文件直接查询MySQL数据库。 这是一个非常复杂的查询,aprox 60select语句在原始MySQL数据库和Microsoft Query连接上都是完美的。 但是,当我在Excel工作表上发布结果时,它会显示除两个以外的所有列(都有一个## < – THIS !!!注释)

select nom_client as Custname ,case when locate('/',nom_voyageur) > 0 then substring(nom_voyageur,1,locate('/',nom_voyageur)-1) else nom_voyageur end as Lastname ,case when locate('/',nom_voyageur) > 0 then substring(nom_voyageur,locate('/',nom_voyageur) + 1, length(nom_voyageur)-locate('/',nom_voyageur)) else '' end as Firstname ,zone_stat_1 as Empcode ,concat(substring(booker,locate(' ',booker) + 1, length(booker)-locate(' ',booker)),' ',substring(booker,1,locate(' ',booker)-1)) as Booker ,zone_stat_3 as 'Euronext TAF Approver level 2' ,'' as "Trip Reason" ,prestation_name as Vendor ,departure_date as Servicedate ,'' as Savings ,advance_purchase as Advpurchgroup , tickets_number as Ticketcount , '' as Triplength ,'' as 'Class of Service' ,case Activite when 1 then 'Rail' when 2 then 'Hotel' when 3 then 'Maritime' when 4 then 'Fees / Regulations' when 5 then 'Air' when 6 then 'Frais' when 7 then 'Visa / Shipments / Subscriptions / ESTA' end as Producttype ,case when length(trajet_origine_destination) > length(replace(trajet_origine_destination,'/','')) then substring(trajet_origine_destination,1,locate('/',trajet_origine_destination)-1) else trajet_origine_destination end as 'Origin Cityname' ,case when length(trajet_origine_destination) > length(replace(trajet_origine_destination,'/','')) then substring(trajet_origine_destination,locate('/',trajet_origine_destination) + 1, length(trajet_origine_destination)-locate('/',trajet_origine_destination)) else trajet_origine_destination end as 'Destination Cityname' ,'Invoice' as Fop ,'APInv' as 'Journal Name' ,Invoice_date as 'Invoice Date' ,'Vendor' as 'Account Type' ,'' as LCOA ,640139 as 'Main Account' ,Zone_stat_2 as 'Cost Center' ,'' as Project ,'' as MarketSegment ,'' as Custumer ,'FAES000528' as Supplier ,'' as Intercompany ,'' as Product ,'' as Dim9 ,'' as Dim10 ,'Ledger' as OffAccountType ,'' as OffMainAccount ,'' as OffsetLCOA ,'' as OffCostCenter ,'' as OffProject ,'' as OffMarketSegment ,'' as OffCustomer ,'' as OffSupplier ,'' as OffIntercompany ,'' as OffProduct ,'' as OffDim9 ,'' as OffDim10 ,concat('FCM-Invoice ',numero_facture,' - ',prestation_name,' - ',substring(nom_voyageur,1,locate('/',nom_voyageur)-1),' ',substring(nom_voyageur,locate('/',nom_voyageur) + 1, length(nom_voyageur)-locate('/',nom_voyageur))) as Description ## <-- THIS!!! ,'EUR' as CurrencyCode ,case when Montant_vente > 0 then Montant_vente else 0 end as AmountCurDebit ,case when Montant_vente < 0 then Montant_vente*-1 else 0 end as AmountCurCredit ,case when Montant_vente > 0 then Montant_vente else 0 end as FunctionalCUrDebit ,case when Montant_vente < 0 then Montant_vente*-1 else 0 end as FunctionalCurCredit ,'AP Posting' as PostingProfile ,'Electronic' as PaymMode ,'INMEDIATE' as Payment ,concat(year(now()),'-',if(month(now())<10,concat('0',month(now())),month(now())),'-13') as Due ## <-- THIS!!! ,'AP_DOM' as 'TaxGroup' ,case activite when 6 then 'HIGH_S' else 'EXEMPT' end as TaxItemGroup ,'' as DocumentNum ,Invoice_date as DocumentDate ,numero_facture as Invoice ,'' as Prepayment ,'' TaxCode ,'' ExchRate ,'No' as ReverseEntry ,'' as ReverseDate ,'FAES' as Company ,'FAES' as OffsetCompany from extrait_sapeig_stat e where mot_dir_client = 'ETT' and invoice_year = year(date_add(now(),Interval -1 month)) and invoice_month = month(date_add(now(),Interval -1 month)) and activite != 11 order by invoice_date, numero_facture; 

另外为了简化,这些是故障陈述

 ',substring(nom_voyageur,locate('/',nom_voyageur) + 1, length(nom_voyageur)-locate('/',nom_voyageur))) as Description ## <-- THIS!!! ,concat(year(now()),'-',if(month(now())<10,concat('0',month(now())),month(now())),'-13') as Due ## <-- THIS!!! 

我不知道他们为什么失败。 我已经在同一个查询中有更长的语句,并且函数concat()已经可以工作了。 我假设有超过3个缩进函数的语句有问题,但我不确定。

如果你们有任何想法,为什么这是失败的,这将帮助我很多

在Microsoft Query中正确的结果

Microsoft Query

说明列消失在Excel表中

Excel工作表

为什么不把它转换成MSAccess,然后把MSAccess转换成MySQL

我发现这个问题!我必须显式地将所有的值转换成concat函数中的string。

现在我有这个

  SELECT concat('FCM-Invoice ',replace(format(numero_facture,0),',',''),' - ',prestation_name,' - ',substring(nom_voyageur,1,locate('/',nom_voyageur)-1),' ',substring(nom_voyageur,locate('/',nom_voyageur) + 1, length(nom_voyageur)-locate('/',nom_voyageur))) as description, date_format(now(),'%Y-%m-13') as due from extrait_sapeig_stat e