pour cette requête Dans mon cas, je veux min_date = null si le groupe a une commande_Products tuple avec une valeur null à la date. P> aucune idée de la procédure? P> P> min_date code> ignore les valeurs code> null code> dans un groupe d'identité de commande. P>
4 Réponses :
L'une des façons de le faire, si votre domaine problématique permet de définir une "date minimale absolue", est d'utiliser l'expression ISNULL () / COALACECE () pour transformer un champ nullable en non null. P>
Un autre (F Pas significatif "plus petit" par défaut peut être défini) est de le faire via 2 requêtes - d'abord sélectionner des choses avec des nulls, puis si le jeu de résultats est vide, ajoutez des trucs lorsque la date n'est pas null p> isnull (datefield, '1000-01-01') code> p>
Une solution de contournement simple pourrait être la suivante: Donc, si, si 1970/01/01, vous savez qu'il y a une valeur null. p> p>
Cette requête renvoie toutes les valeurs min_date comme '1970-01-01'. Êtes-vous sûr que celui-ci fonctionne, avez-vous essayé avant?
@Shikhar: Non, je n'ai pas essayé avant, mais je l'ai essayé maintenant et ça marche pour moi. Peut-être qu'il y a des nulls dans toutes les commandes?
select case when count(date)=sum(1) then min(date) else null end or, when all rows are not null, return min date, else return null.
Si la question consiste à trouver la date minimale à partir de plusieurs colonnes, les éléments suivants pourraient vous aider;
SELECT
LEAST
(IFNULL(date_1, date(CURRENT_DATE()+1)),
IFNULL(date_2, date(CURRENT_DATE()+1)),
IFNULL(date_3, date(CURRENT_DATE()+1))) as MinimumDate
FROM YourTable;