0
votes

Comment pouvez-vous gérer cette sous-requête avec Linq à SQL?

Je suis un peu coincé à ce sujet. Fondamentalement, je veux faire quelque chose comme la requête SQL suivante à Linq à SQL:

SELECT * 
FROM UnitPrice
WHERE EffectiveDateTime = (SELECT MAX(EffectiveDateTime) 
                           FROM UnitPrice AS InnerUnitPrice 
                           WHERE InnerUnitPrice.EffectiveDateTime < GETDATE())


1 commentaires

Qu'est-ce que tu as essayé jusque-là? Des erreurs que vous obtenez?


3 Réponses :


0
votes

Je vous donne un exemple sur cette courte liste d'objets xxx

Les propriétés de la saisie de la classe sont, dans la référence (chaîne), don (chaîne), date (DateTime), Montant (double).

première étape, nous voulons sélectionner la date la plus récente qui est précédée aujourd'hui (ce que vous faites dans votre sous-requête); À partir de notre liste, nous pourrions faire quelque chose comme ceci: xxx

exécutant ce que vous obtiendrez le 31/12/2018 à votre guise. Mais nous avons besoin d'une autre étape pour sélectionner toutes les informations sur la date sélectionnée. Donc, étape 2, nous mettons notre liste de départ dans une jointure intérieure avec celle que nous venons de construire: xxx

Le résultat sera xxx < / Pré>

comme vous le souhaitez. J'espère que cela aide!


0 commentaires

1
votes

Vous pouvez faire ce qui suit.

émuler votre scénario avec DataTable P> xxx pré>

Vous pouvez interroger le résultat requis comme, P>

04-12-2018 00:00:00 Sample41 
04-12-2018 00:00:00 Sample4 


0 commentaires

0
votes

Query LINQ LAMDA:

            var q = db.UnitPrice
                .Where(x1 => x1.EffectiveDateTime == db.UnitPrice
                                                    .Where(x2 => x2.EffectiveDateTime < DateTime.Now)
                                                    .Max(x3 => x3.EffectiveDateTime)
                )
                .ToList();


0 commentaires