Page 1 sur 1

[R] Requête SQLite

Posté : lun. 01 juin 2015 11:45
par Hugues
Bonjour,

J'aimerai savoir si l'on peut mettre plusieurs conditions dans un "GROUP BY".

De plus, je n'arrive pas à trouver une requête qui me retournerai comme valeurs (par exemple):

3 items toto, 12 items tata et 38 items tutu...

J'utilise ce style de requête:

Code : Tout sélectionner

Local $iRval
            $iRval = _SQLite_GetTable2d(-1, "SELECT * FROM DummyTable GROUP BY `MaColonne`;", $aResult, $iRows, $iColumns)
            If $iRval = $SQLITE_OK Then
                _SQLite_Display2DResult($aResult)
                $html = _ArrayToHtml2D($aResult)
                _SendEmail($html, $DummyName)
                $DummyName = ""

            Else
                MsgBox(16, "SQLite Error: " & $iRval, _SQLite_ErrMsg())
            EndIf
 
Merci par avance pour votre aide.

Re: [..] Requête SQLite

Posté : lun. 01 juin 2015 12:11
par jguinch
Difficile de répondre avec si peu d'infos...
Pour le GROUP BY, tu peut mettre plusieurs colonnes : GROUP BY col1, col2 : le tri se fera d'abord sur la colonne 1, puis la colonne 2 (comme dans Excel).
Pour toto et tata, y va falloir expliquer avec des mots.

Re: [..] Requête SQLite

Posté : lun. 01 juin 2015 12:56
par Hugues
Impeccable merci ^^

Pour l'autre question, elle est imbécile car j'affiche dans un tableau les valeurs retournées par la requête...

Merci beaucoup.

Re: [..] Requête SQLite

Posté : lun. 01 juin 2015 12:56
par Hugues
Impeccable merci ^^

Pour l'autre question, elle est imbécile car j'affiche dans un tableau les valeurs retournées par la requête...

Merci beaucoup.

Re: [R] Requête SQLite

Posté : lun. 01 juin 2015 13:25
par jchd
Pour ta seconde question, tu peux employer group_concat.

Exemple :

CREATE TABLE "Items" (
"Item" CHAR NOT NULL COLLATE NOCASE,
"SerialNum" CHAR NOT NULL,
CONSTRAINT "" PRIMARY KEY ("Item", "SerialNum"));

Item SerialNum
toto 123
tutu 123
TOTO 456
toTO 789
tiTi 147
Titi 258
titi 369

select group_concat(cnt || ' ' || item, ', ') Résultat
from (
select count(*) cnt,
item
from items
group by item
)
group by '1';

Résultat
3 titi, 3 toTO, 1 tutu