Bonjour,
Maurice Starck a écrit :
Manuel NAUDIN wrote:
Bonjour,
Le 10/12/06, Maurice Starck<[EMAIL PROTECTED]> a écrit :
Dans une requête sur une table avec un champ "date" et un champ
"type", et où je fais des sommes sur d'autres champs numériques, je
voudrais sélectionner : 1- les enregistrement jusqu'à aujourd'hui
(équivalent de Date() sous Access)
SELECT SUM("champ_à_sommer") AS "somme" FROM "LaTable" WHERE
"champ_date" <= CURRENT_DATE
2- les enregistrements dont le type est vide (EMPTY ne fonctionne pas
???)
SELECT SUM("champ_à_sommer") AS "somme" FROM "LaTable" WHERE
"champ_type" IS NULL
3- les enregistrements répondant à ces deux critères
SELECT SUM("champ_à_sommer") AS "somme" FROM "LaTable" WHERE
("champ_date" <= CURRENT_DATE AND "champ_type" IS NULL)
Question connexe : si au lieu de sélectionner un type, je regroupe
selon le type (pour sommer par type) est-il possible, dans la même
requête, de calculer aussi les sommes totales ?
non, je ne crois pas que cela soit possible
Maurice
Manuel
Merci Manuel, c'est clair, net et précis.
Dans quelle doc aurais-je pu trouver ces infos (CURRENT_DATE et IS NULL)
tout seul comme un grand ? Au fait IS EMPTY marche aussi (j'avais zappé
le IS).
Ici tu trouveras des infos sur les commandes SQL :
http://hsqldb.org/doc/guide/ch09.html
Si j'utilise ... WHERE ( ( "date" <= CURRENT_DATE AND "type" = 'A' )
OR ( "date" <= CURRENT_DATE AND "type" = 'B' ) )
il faut que ces deux champs date et type utilisent la fonction
d'agrégation GROUP, mais alors je n'ai plus un regroupement uniquement
par type.
Comme work around j'utilise deux requêtes successives, la première pour
sélectionner selon la date, la seconde pour sélectionner et regrouper
par type. Peut-on arriver au même résultat avec une seule requête?
Je pense que c'est possible, via des requêtes imbriquées (QiQ).
En voici un exemple d'écriture : SELECT <champs> FROM <table>, ( SELECT
<champs> FROM <table> ) AS "table_temp"
Bien sûr différentes clauses/fonctions peuvent être implémentées.
Petite question hors sujet : dans une table est-il possible de justifier
à droite l'affichage d'un champ numérique ?
Il faut utiliser le formatage des colonnes (clic-droit sur l'entête).
Maurice
Francois Gatto
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]