Créer vue SQLITE3 (Demande d'aide)

Résolu/Fermé
lolpark
Messages postés
5
Date d'inscription
samedi 18 janvier 2020
Statut
Membre
Dernière intervention
19 janvier 2020
- 18 janv. 2020 à 19:20
lolpark
Messages postés
5
Date d'inscription
samedi 18 janvier 2020
Statut
Membre
Dernière intervention
19 janvier 2020
- 19 janv. 2020 à 10:46
Bonjour,
Sur sqlite3 j'ai créé une table mono-colonne avec des valeurs de 0 à 100.
Soit 101 lignes.
Je doit créer une vue avec 3 colonnes.
Une colonne x, une colonne y et une colonne z, z étant calculée à partir de x et y.
Exemple :
x | y | z
--------------------------------
100| 80| 100,080

Au total je doit obtenir une table avec 3 colonnes et 10201 lignes (101 *101).
Exemple :
x | y | z
0 | 0 | 000,000
0 | 1 | 000,001
... | ... | ...
100 | 100 | 100,100

Merci pour votre aide,
lolpark

3 réponses

jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
4 200
18 janv. 2020 à 21:40
Bonjour,

En sqlite3, si tu veux formater tes nombres en ajoutants les "lead" zero..
Tu peux
--  zero-pad to 3 digits:
select substr('000'||y,- y.nombre);

ou un sprintf
select printf('%04d',  y.nombre)

1
lolpark
Messages postés
5
Date d'inscription
samedi 18 janvier 2020
Statut
Membre
Dernière intervention
19 janvier 2020

18 janv. 2020 à 20:20
Re-bonjour,
J'ai réussi à créer ma vue par contre j'ai un problème avec le format.

CREATE VIEW vue_points AS
SELECT x.nombre AS x, y.nombre AS y, CASE WHEN y.nombre == 100
THEN x.nombre "." y.nombre WHEN y.nombre < 10
THEN x.nombre ".00" y.nombre
ELSE x.nombre ".0" y.nombre
END AS z FROM zero_cent AS x, zero_cent AS y;


Ce qui me donne :
x | y | z
0 | 0 | 0.001
au lieu de :
x | y | z
0 | 0 | 000.001

Comment faire pour ajouter des 0 à ma valeur x reprise dans z afin d'obtenir 3 chiffres à chaque fois comme je l'ai fait avec la valeur y ?
Merci de votre aide,
Lolpark
0
yg_be
Messages postés
19561
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 juillet 2022
1 131
18 janv. 2020 à 20:56
bonjour, moi je commencerais par faire une view mono-colonne qui met les 101 valeurs dans le bon format.
et ensuite une view qui combine les valeurs deux par deux.
0
lolpark
Messages postés
5
Date d'inscription
samedi 18 janvier 2020
Statut
Membre
Dernière intervention
19 janvier 2020
> yg_be
Messages postés
19561
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 juillet 2022

18 janv. 2020 à 21:38
Intéressant j’essayerai mais je préférerais le faire une seule vue comme la commande que j'ai envoyé précédemment.
Merci pour ton idée
0
lolpark
Messages postés
5
Date d'inscription
samedi 18 janvier 2020
Statut
Membre
Dernière intervention
19 janvier 2020

18 janv. 2020 à 22:33
Bonjour Jordane45,

Je ne vois pas comment intégrer la commande à mon code.
Comment je peux l’intégrer ?
0
yg_be
Messages postés
19561
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 juillet 2022
1 131
19 janv. 2020 à 09:23
un exemple d'utilisation:
CREATE VIEW vue_points AS
SELECT x.nombre AS x, y.nombre AS y,
printf('%03d', x.nombre) as lx, printf('%03d', y.nombre) as ly
FROM zero_cent AS x, zero_cent AS y;
0
lolpark
Messages postés
5
Date d'inscription
samedi 18 janvier 2020
Statut
Membre
Dernière intervention
19 janvier 2020
> yg_be
Messages postés
19561
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 juillet 2022

19 janv. 2020 à 10:46
Merci beaucoup !
Voila ma commande final qui fonctionne:

CREATE VIEW vue_points AS
SELECT x.nombre AS x, y.nombre AS y,
printf('%03d', x.nombre)||","|| printf('%03d', y.nombre) as z
FROM zero_cent AS x, zero_cent AS y;


Bonne journée
0