Je reçois l'erreur "Code d'erreur: Colonne inconnue 't2.FSVisitsToDate' dans 'Liste des champs' lorsque j'exécute ma requête, mais je ne peut pas savoir où ma requête ne va pas. quelqu'un peut-il indiquer ce que je fait de mal?insérer dans ... sur les mises à jour en double provoque la colonne Inconnu dans la liste des champs, mais le champ existe
INSERT INTO CMCustomer
(CustomerNumber,
LastName,
FirstName,
Address,
City,
State,
ZIPCode,
PhoneNo,
DriverLicenseNo,
SocialSecNo,
TaxExempt,
ExternalRefNumber,
AuxField,
Comments,
FSLevelNo,
FSDateOpened,
FSLastVisit,
FSVisitsToDate,
FSVisitsThisPeriod,
FSPurchaseToDate,
FSPurchaseThisPeriod,
FSDiscountToDate,
FSDiscountThisPeriod,
FSPointsToDate,
FSPointsThisPeriod,
FSPromoPointsToDate,
FSPromoPointsThisPeriod,
LastUpdated,
Employee)
SELECT t1.CustomerNumber,
t1.LastName,
t1.FirstName,
t1.Address,
t1.City,
t1.State,
t1.ZIPCode,
t1.PhoneNo,
t1.DriverLicenseNo,
t1.SocialSecNo,
t1.TaxExempt,
t1.ExternalRefNumber,
t1.AuxField,
t1.Comments,
t1.FSLevelNo,
t1.FSDateOpened,
t1.FSLastVisit,
t1.FSVisitsToDate,
t1.FSVisitsThisPeriod,
t1.FSPurchaseToDate,
t1.FSPurchaseThisPeriod,
t1.FSDiscountToDate,
t1.FSDiscountThisPeriod,
t1.FSPointsToDate,
t1.FSPointsThisPeriod,
t1.FSPromoPointsToDate,
t1.FSPromoPointsThisPeriod,
t1.LastUpdated,
t1.Employee
FROM cm01process t1
LEFT JOIN CMCustomer t2 ON t2.CustomerNumber = t1.CustomerNumber
ON DUPLICATE KEY UPDATE
t2.FSVisitsToDate = t2.FSVisitsToDate + t1.FSVisitsToDate,
t2.FSVisitsThisPeriod = t2.FSVisitsThisPeriod + t1.FSVisitsThisPeriod,
t2.FSPurchaseToDate = t2.FSPurchaseToDate + t1.FSPurchaseToDate,
t2.FSPurchaseThisPeriod = t2.FSPurchaseThisPeriod + t1.FSPurchaseThisPeriod,
t2.FSDiscountToDate = t2.FSDiscountToDate + t1.FSDiscountToDate,
t2.FSDiscountThisPeriod = t2.FSDiscountThisPeriod + t1.FSDiscountThisPeriod,
t2.FSPointsToDate = t2.FSPointsToDate + t1.FSPointsToDate,
t2.FSPointsThisPeriod = t2.FSPointsThisPeriod + t1.FSPointsThisPeriod,
t2.FSPromoPointsToDate = t2.FSPromoPointsToDate + t1.FSPromoPointsToDate,
t2.FSPromoPointsThisPeriod = t2.FSPromoPointsThisPeriod + t1.FSPromoPointsThisPeriod;
ce que je suis en train d'accomplir est de prendre un fichier d'un de mes magasins et l'importer dans ma base de données. Si elle est un nouveau client J'ai besoin de la ligne ajoutée, et si c'est un client en double j'ai besoin de champs mis à jour (points ajoutés à l'utilisateur)
Vous devez montrer votre requête pour que nous puissions voir ce qui ne va pas dans votre requête. –
La requête est déjà jointe. il est juste là dans le bloc de code, insérer dans .. à partir .. jointure gauche .. sur la requête de mise à jour de clé en double. –
Je ne suis pas un expert sur cette fonctionnalité de mysql, mais ne devrait pas être 'SUR DUPLICATE KEY UPDATE FSVisitsToDate = t2.FSVisitsToDate + t1.FSVisitsToDate, ...' Pourquoi essayez-vous de définir 't2.FSVisitsToDate' ici . (encore aucun expert, mais cela se sent mal). – JNevill