je suis difficile avec un devoir ... J'ai besoin de choisir le dernier prix de l'unité par date!
Ceci est la façon dont je le fais: p> Qu'est-ce que je fais en ce moment donne à répéte de dû à thé p> p> p>
3 Réponses :
Vous avez besoin d'une sous-requête pour trouver la date la plus récente pour chaque produit, puis vous devez correspondre à cette date et à cette date à la table principale pour trouver le prix unitaire qui va avec le produit et la date:
SELECT s.CodProduct, s.UnitPrice, s.Date
FROM Exemplo.dbo.sells s INNER JOIN
(SELECT s2.CodProduct, MAX(s2.Date) As MaxDate
FROM Exemplo.dbo.sells s2 GROUP BY s2.CodProduct) md ON
s.CodProduct = md.CodProduct AND
s.Date = md.MaxDate
S'ils ont 100 produits et qu'ils veulent le dernier prix pour chacun, c'est faux.
Nom de la colonne ambiguë 'CodProduct'.
J'ai édité la réponse pour éviter cette erreur de nom de colonne ambiguë. Les tables sont toujours explicitement spécifiées pour chaque colonne maintenant.
Je reçois toujours un Cod de Cod à répéter ... Je pense que cela devrait être facile mais avoir du mal
Assurez-vous de rafraîchir la page. Il ne montrait pas mes changements avant de le faire. La première ligne devrait dire "Sélectionnez S.CodProduct, S.Unitprice, S.Date".
Je crois que vous avez besoin de quelque chose comme ça (pas exactement votre définition de table):
Vous pouvez utiliser rang_number () code> dans une CTE sur "classer" tous les produits de sorte que la date la plus récente qu'un produit ait un prix unitaire avec un numéro de ligne de 1. Puis dans votre principal Sélectionnez CODE> Vous venez de filtrer où rn = 1 code>. Le code ressemblerait à quelque chose comme ceci:
Je suis en train d'utiliser le groupe par ce que vous suggérez?
Pls. Ajoutez votre nom de base de données comme SQL Server, Oracle, MySQL, etc.