J'ai deux tables, les Customers [CustomerID, Email]
et l'histoire [CustomerID, BikeID, Checkout, StationIDout, Checkin, StationIDin].
Étant donné l'adresse e-mail d'un client, je souhaite interroger la table History
et get toutes les lignes contenant le code CustomerID
correspondant à cet e-mail où le vélo a été renvoyé ( WHERE Checkin IS NOT NULL
), en commandant la date d' Checkin
plus récente.
J'ai essayé la requête suivante mais j'obtiens l'erreur:
"L'identifiant en plusieurs parties" [email protected] "ne pouvait pas être lié."
- Différence entre la jointure interne VS Inner Remote Join
- Requête SQL pour get des loggings inexistants à partir de la table
- Comment écrire une requête T-SQL qui produirait 1 si la valeur dans une colonne dans le tableau A correspond à la valeur dans une colonne dans le tableau B, 0 sinon?
- Mettre à jour le problème de colonne tsql
- Simple T-SQL Join question
[email protected] existe dans la database. J'ai vu d'autres messages expliquant que c'est une faute de frappe ou qu'une colonne est mal sélectionnée, mais je ne vois pas ma requête en faire. Y a-t-il autre chose qui me manque?
email = "[email protected]"; sql = ssortingng.Format(@" SELECT BikeID, Checkout, StationIDout, Checkin, StationIDin FROM History INNER JOIN Customers ON Customers.CustomerID = History.CustomerID AND Customers.Email = {0} WHERE Checkin IS NOT NULL ORDER BY Checkin DESC", email);
Guillemets de string manquants:
sql = ssortingng.Format(@" SELECT BikeID, Checkout, StationIDout, Checkin, StationIDin FROM History INNER JOIN Customers ON Customers.CustomerID = History.CustomerID AND Customers.Email = '{0}' ^ ^ WHERE Checkin IS NOT NULL ORDER BY Checkin DESC", email);
Mais plutôt que d'utiliser la concat ou le format, utilisez les parameters