Un seul dossier peut être renvoyé par la sous-requête. (Erreur 3354)
Salut ma requête d'erreur m'aider à le récupérer
SELECT CompanyId, CompanyName, RegistrationNumber,
(select CompanyAddress from RPT_Company_Address where
RPT_Company_Address.CompanyId=Company.CompanyId) AS CompanyAddress,
MobileNumber, FaxNumber, CompanyEmail, CompanyWebsite, VatTinNumber
FROM Company;`
Vous devez vous connecter pour publier un commentaire.
Il semble que votre RPT_Company_Address table a plus d'une adresse pour une entreprise donnée. Si cela ne devait pas être possible, vous devriez essayer de les corriger et de modifier votre schéma pour éviter la possibilité que cela se produise.
Sur l'autre main, si il peut y avoir plusieurs adresses, vous devez décider comment votre requête doit gérer:
1) voulez-vous la même société de ligne à plusieurs reprises-- un pour chaque adresse? Si oui, utiliser un
INNER JOIN
de les renvoyer tous:2) Si vous voulez que la première adresse de correspondance, faire une sous-requête sur le premier correspondant à l'adresse correspondant à chaque entreprise:
3) Si vous avez une autre façon d'identifier les "primaires" de l'adresse que vous souhaitez, inclure un
WHERE
clause que les critères:Votre sous-requête ci-dessous est de retour en plus d'un résultat
Donc plus d'une adresse correspond à votre id d'entreprise.
Essayer de corriger les données ou à l'aide de:
Me semble que votre RPT_Company_Address table contient plusieurs entrées pour certains CompanyIds.