Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je suis débutante sur qlik, et j'ai mis en place une petite recherche des températures en temps réel, pour différentes villes via le site www.infoclimat.fr.
Pour lyon:
lyon_bron:
LOAD Heure as time,
Temps,
[relevée entre 1m50 et 2m du sol">Température] as temperature_lyon,
[Température ressentieElle correspond au windchill (indice de refroidissement éolien) lorsque la température est inférieure à 10°C, et à l'humidex (indice de chaleur) lorsque la température est supérieure à 20°C. Ces données n'ont pas d'unité et ne correspondent pas à une température observée. Cette colonne affiche aussi, si disponible, les valeurs d'indice UV et de radiations solaires.">Biométéo],
Pluie,
Humidité,
[Pt. de rosée],
[Vent moyen (raf.)],
Pression,
Visibilité
FROM
[http://www.infoclimat.fr/observations-meteo/temps-reel/lyon-bron/07480.html?metar]
(html, codepage is 1252, embedded labels, table is @1);
Pour Marseille:
marseille:
LOAD Heure as time,
Temps,
[relevée entre 1m50 et 2m du sol">Température] as temperature_marseille,
[Température ressentieElle correspond au windchill (indice de refroidissement éolien) lorsque la température est inférieure à 10°C, et à l'humidex (indice de chaleur) lorsque la température est supérieure à 20°C. Ces données n'ont pas d'unité et ne correspondent pas à une température observée. Cette colonne affiche aussi, si disponible, les valeurs d'indice UV et de radiations solaires.">Biométéo],
Pluie,
Humidité,
[Pt. de rosée],
[Vent moyen (raf.)],
Pression,
Visibilité
FROM
(html, codepage is 1252, embedded labels, table is @1);
Mais le résultat est assez moche vu que j'ai deux lignes pour l'heure.
Est-ce que je dois concaténer les données?
Merci de vos conseils
Le left join fonctionne aussi si elle renomme ces champs ou qu'elle drop fields.
Ceci dit ton script est mieux car il n'y a pas de perte.
Il faut que tu fasses un left join entre tes 2 tables.
Kevin
Le "left join" ne va rien changé, tes tables sont liées par tous les champs, sauf la température que tu as renommé en fonction de la ville. Résultat tu as une table synthétique que les bonnes pratiques conseil de supprimer.
Dans ton cas, c'est très simple. je te conseille de garder les champs de tes 2 requêtes avec le même nom, tu auras ainsi une concaténation automatique de tes 2 tables. Il faut simplement ajouté un champs Ville dans chacune de tes requêtes avec en dur le nom de la ville.
Ca donnerait ça:
Météo:
LOAD
'Lyon' as Ville,
Heure as time,
Temps,
[relevée entre 1m50 et 2m du sol">Température] as temperature,
[Température ressentieElle correspond au windchill (indice de refroidissement éolien) lorsque la température est inférieure à 10°C, et à l'humidex (indice de chaleur) lorsque la température est supérieure à 20°C. Ces données n'ont pas d'unité et ne correspondent pas à une température observée. Cette colonne affiche aussi, si disponible, les valeurs d'indice UV et de radiations solaires.">Biométéo],
Pluie,
Humidité,
[Pt. de rosée],
[Vent moyen (raf.)],
Pression,
Visibilité
FROM [http://www.infoclimat.fr/observations-meteo/temps-reel/lyon-bron/07480.html?metar] (html, codepage is 1252, embedded labels, table is @1);
LOAD
'Marseille' as Ville,
Heure as time,
Temps,
[relevée entre 1m50 et 2m du sol">Température] as temperature,
[Température ressentieElle correspond au windchill (indice de refroidissement éolien) lorsque la température est inférieure à 10°C, et à l'humidex (indice de chaleur) lorsque la température est supérieure à 20°C. Ces données n'ont pas d'unité et ne correspondent pas à une température observée. Cette colonne affiche aussi, si disponible, les valeurs d'indice UV et de radiations solaires.">Biométéo],
Pluie,
Humidité,
[Pt. de rosée],
[Vent moyen (raf.)],
Pression,
Visibilité
FROM [http://www.infoclimat.fr/observations-meteo/temps-reel/marseille-marignane-marseille-provence/07650....] (html, codepage is 1252, embedded labels, table is @1);
Essaye d'éviter également ce nom de champs énorme, renomme le ou commente le si tu n'en a pas besoin.
Tu peux ensuite créer un tableau croisé dynamique avec "time" et "Ville"
Comme tu peux le voir dans le titre, j'ai utiliser MaxString(temperature) comme expression, car ta température est une chaine de caractère et pas une valeur numérique. C'est domage, car si c'était une valeur numérique tu pourrais calculer facilement la valeur Minimum Min(), Maximum Max(), Moyenne Avg() de la journée, de la semaine, du mois, ...
Si tu ne veux que la partie numérique, tu peux remplacer dans tes requêtes :
[relevée entre 1m50 et 2m du sol">Température] as temperature,
par :
SubField([relevée entre 1m50 et 2m du sol">Température],' ',1) as temperature,
Et pour finir, il faudrait que ton champs "time" soit utilisé pour créé un champs dateTime et/ou un champs dateTimeUtc en fonction de ton besoin et que ces champs soit lié à une table calendrier qui te permettra d'avoir toutes les granularité temporelle que tu désires.
Le left join fonctionne aussi si elle renomme ces champs ou qu'elle drop fields.
Ceci dit ton script est mieux car il n'y a pas de perte.
Merci à vous pour les conseils,
ça fonctionne nickel.
Très bonne remarque sur le champs "time". J'ai trouvé ce sujet, Split date and time from a time field.
Mais si jamais vous en avez une explication en français !
Bonne journée.