J'essaie d'obtenir des résultats à partir de 2 colonnes où la valeur app_id n'est pas nulle et payée_date n'est pas nulle, j'essaye avec ce code:

SELECT
sum (case
         when app_id is NOT NULL
         and paid_date is NOT NULL
     then
         1
     else
         0
     end) as PO_Apps
from table_apps

J'ai obtenu le résultat PO_Apps: 10 pas 1

Voici ma colonne payée_date:

paid date

Et app_id:

app_id

Mon problème est dans la colonne payé_date lorsque la date contient 00-00-00 n'est pas nulle. Comment résoudre ça? Aidez-moi, s'il vous plaît. Merci!

sql
0
andreas 29 août 2020 à 09:52

3 réponses

Meilleure réponse

Ajoutez une condition pour accepter les lignes lorsque la date n'est pas «0000-00-00»

SELECT
sum (case when app_id is NOT NULL and paid_date is NOT NULL and paid_date != '0000-00-00' then 1 else 0 end) as PO_Apps
from table_apps

Le deuxième cas d'utilisation de ce type de requête peut être:

SELECT count(app_id) as PO_Apps
from table_apps
where paid_date is NOT NULL and paid_date != '0000-00-00'

count(app_id) ne comptera que les instances non nulles.

2
Aagam Sheth 29 août 2020 à 07:06

Vous pouvez essayer ci-dessous -

SELECT count(*) PO_Apps from tablename 
where app_id is NOT NULL and (paid_date is not null or paid_date<>'0000-00-00')
0
Fahmi 29 août 2020 à 07:09

Il suffit d'utiliser la condition count et where

select count(*) from table_apps where   
paid_date is NOT NULL and paid_date != '0000-00-00' and app_id is NOT NULL
1
Zaynul Abadin Tuhin 29 août 2020 à 06:58