2017-10-09 5 views
0

J'ai ces données:Si/Sinon dans une requête, avec le groupe par fonction

+-----------+-----------+--------+-------------+--------+ 
| Date | Data NP | Type | Desc  | Amount | 
+-----------+-----------+--------+-------------+--------+ 
| 10/1/2017 | 1/1/1970 | Income | invoice 812 | 600000 | 
| 10/1/2017 | 1/1/1970 | Income | invoice 813 | 60000 | 
| 10/1/2017 | 1/1/1970 | Income | invoice 813 | 50000 | 
| 10/1/2017 | 1/1/1970 | Income | invoice 813 | 20000 | 
| 10/1/2017 | 1/1/1970 | Income | invoice 815 | 23000 | 
| 10/1/2017 | 1/1/1970 | Income | invoice 815 | 28000 | 
| 10/1/2017 | 10/6/2017 | Income | invoice 816 | 70000 | 
| 10/1/2017 | 10/6/2017 | Income | invoice 816 | 50000 | 
| 10/1/2017 | 1/1/1970 | Income | invoice 817 | 140000 | 
+-----------+-----------+--------+-------------+--------+ 

Je voudrais obtenir une nouvelle table où il n'y a qu'une seule date, peuplée Date NP si> de 1/1/1970 sinon Date. La nouvelle table doit être regroupée par Desc, afin d'avoir le montant total pour chaque facture.

Au moment ceci est ma formule:

SELECT Col1, Col3, Col4, SUM(Col5) WHERE Col5>0 AND Col1>= date '"&text($A$1,"yyyy-mm-dd")&"' GROUP BY Col4

mais je suis coincé comme feuille de calcul Google jette une erreur que je mélange un résultat d'agrégation, SUM (Col5) avec d'autres résultats normaux.

Répondre

1

Pour résoudre l'erreur, vous devez inclure toutes les colonnes qui ne sont pas résumées sur la clause GROUP BY:

Essayez

SELECT Col1, Col3, Col4, SUM(Col5) WHERE Col5>0 AND Col1>= date '"&text($A$1,"yyyy-mm-dd")&"' GROUP BY Col1, Col3, Col4

En ce qui concerne le "si", Google Recherche n » t inclure une clause if, de sorte que vous puissiez appliquer l'IF en utilisant des fonctions de tableur, avant ou après avoir appliqué la fonction QUERY.

+0

Cela fonctionne, merci, mais comment sélectionner conditionnellement une date (Col2 si Col2> '01/01/1970 sinon Col1)? – poisons

+0

@poisons: J'ai mis à jour ma réponse. –