Utilisation de l'architecte Advantage, j'ai une table qui a deux colonnes, dites Ident et date par exemple. Chaque identification distincte peut avoir plusieurs valeurs de date à l'encontre de celle-ci, donc une ligne par identification et par date si Select * est effectuée. Cependant, bien que je puisse utiliser le code ci-dessous pour obtenir la valeur de date maximale pour chaque identification, il y aura des instances dans ce tableau lorsque la valeur de date est NULL, et je ne veux pas de résultats là où il y a une date à une date contre un Identifiant donné qui est null. Donc, en fait, je veux seulement que ma déclaration montrent les résultats où les seules valeurs de date maximum contre l'identité sont des dates contre des identiques où il n'y a pas de dates nuls. Toutes idées?
Exemple de table: P>
IDENT | DATE 0002 | 30/01/2012
3 Réponses :
Je ne sais pas si j'ai bien compris votre question, mais que vous souhaitez exclure les fonctionnalités pour lesquelles au moins 1 rangée avec un Essayez ceci: p> null code> date existe.
SELECT a.ident,
MAX(a.date)
FROM Table a
WHERE NOT EXISTS (SELECT *
FROM Table b
WHERE a.ident = b.ident
AND b.date IS NULL)
GROUP BY a.ident;
Vous avez frappé le clou sur la tête, mais il n'y a pas de table B impliquée dans ce cas. Juste une table
C'est la même table. B code> est un alias dans ce cas
Ah, désolé, je te comprends maintenant. Il utilise la même table juste un alias différent. Tout bon. Semble travailler, alors merci beaucoup !!
faire le groupe par code> comme avant, utilisez
avoir code> pour exclure les identiques ayant une date de valeur null.
select ident, max(date)
from Table A
group by ident
having count(date) = count(*)
Je semble avoir négligé un détail supplémentaire ici, dans la mesure où dans la partie de la déclaration de sélection, je souhaite que la valeur associée d'une autre colonne apportée. Donc, ce sera identifier, date, ref, avec réf. associé à l'identifiant et la date maximale qui a été traduite. Je ne semble pas être capable de faire cela cependant, car Ref n'est pas dans le groupe en partie, et quand je l'ajoute dans le cadre du groupe, il déforme mes résultats. P>
Quel DBMS Produit utilisez-vous? "SQL" est juste une langue de requête, pas le nom d'un produit de base de données spécifique. Veuillez ajouter un tag pour le produit de base de données que vous utilisez
postgreSQL code>,
oracle code> ,
sql-serveur code>,
db2 code>, ...
Les tables ont colonnes i>, pas des champs.
OK, a apporté quelques modifications à mon post. J'espère mieux maintenant?
Et s'il y avait une ligne avec
identifient = 001 et date = 30/01/2012 code>
Ensuite, cela serait introduit dans les résultats car ce n'est pas nul, et c'est aussi la date maximale.