如何修复SQL Server数据工具中的OLE DB错误

时间:2019-05-26 15:42:27

标签: sql sql-server ssis etl data-warehouse

我正在尝试将列从数据库表转移到数据仓库中的事实表中。

我正在使用以下SQL命令来检索数据

SELECT employée.matricule, accident.[code accident], prestataire.[N°], 
visite.[date visite], accident.[date accident] ,remboursement.[montant rem], visite.[Nbre Jours Acc] 
FROM 
    visite, employée, accident, prestataire, remboursement, bordereaux
WHERE 
    employée.matricule=accident.matricule AND 
    employée.matricule= visite.matricule AND
    prestataire.valeur = bordereaux.prestataire AND
    bordereaux.matricule = employée.matricule AND
    remboursement.[numéro du bulletin] = bodereaux.[numéro du bulletin]

“ bodereaux”和“ remboursement”表中存在[numérodu bulletin]列,但我不明白为什么我会不断收到此错误

错误2
验证错误。数据流任务OLE DB源[48]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80040E14。 OLE DB记录可用。来源:“ Microsoft SQL Server Native Client 11.0”结果:0x80040E14说明:“无法准备语句。”。 OLE DB记录可用。来源:“ Microsoft SQL Server本机客户端11.0”结果:0x80040E14说明:“无法绑定多部分标识符“bodereaux.numérodu bulletin”。 FaitAccident.dtsx 0 0

1 个答案:

答案 0 :(得分:1)

尝试使用以下查询:

SELECT 
    employée.matricule, 
    accident.[code accident], 
    prestataire.[N°], 
    visite.[date visite], 
    accident.[date accident], 
    remboursement.[montant rem], 
    visite.[Nbre Jours Acc] 
FROM 
    visite INNER JOIN employée ON employée.matricule = visite.matricule
           INNER JOIN accident ON employée.matricule = accident.matricule
           INNER JOIN bordereaux ON bordereaux.matricule = employée.matricule
           INNER JOIN remboursement ON remboursement.[numéro du bulletin] = bodereaux.[numéro du bulletin]
           INNER JOIN prestataire ON prestataire.valeur = bordereaux.prestataire