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
A voir également:

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
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 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
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 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
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 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
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 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
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