IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HyperFileSQL Discussion :

REQUETE SQL HFSQL


Sujet :

HyperFileSQL

  1. #21
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 228
    Points : 12 838
    Points
    12 838
    Par défaut
    frenchsting: en fait c'était ma première idée, mais visiblement HFSQL ne supporte pas les CTE. Ou pas encore, peut-être dans une prochaine version.

    C'est bien dommage, car ça permet dans certains cas de découper une requête et d'en simplifier l'écriture.

    Tiens, une autre solution qui me vient à l'esprit: une sous requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT COMMANDC.NUMEROC, COMMANDC.CODE, COMMANDC.NOM, COD_PROJET.NOM, MaxDeTOTAL, SommeDeTOTAL1, MaxDeTOTAL - SommeDeTOTAL1 AS SOLDE
    from
    (
    FROM COD_PROJET
    INNER JOIN COMMANDC ON COD_PROJET.IDCOD_PROJET = COMMANDC.IDCOD_PROJET
    INNER JOIN FACTURE ON FACTURE.NUM_CMD_SITUATION = COMMANDC.NUMEROC
    GROUP BY COMMANDC.NUMEROC, COMMANDC.CODE, COMMANDC.NOM, COD_PROJET.NOM
    )
    ORDER BY NUMEROC DESC;

    L'aide en ligne indique que c'est supporté, donc ça me semble être une piste à tenter.

    Tatayo.

  2. #22
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 946
    Points : 1 942
    Points
    1 942
    Par défaut
    Bonjour,

    Je vois que j'arrive après la guerre mais je confirme que les limites de HFSQL sont importantes et notamment en SQL. Ce genre de requête n'a jamais fonctionné et ne sera très certainement jamais implémenté dans HFSQL car ce n'est pas la priorité de PC Soft.

    Je n'utilise plus HFSQL depuis très longtemps sauf si je n'ai pas le choix (un client qui l'utilise par exemple). Je suis passé sur du PostgreSQL ou SQL Server bien plus efficace et robuste que HFSQL.

    Donc la solution peut être de s'affranchir de HFSQL tout simplement en utilisant tout autre SGBD qui conviendrait à la société.
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  3. #23
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 250
    Points : 9 283
    Points
    9 283
    Par défaut
    Bonjour,

    Oui, le SQL de HF n'est pas terrible. Mais HF a l'avantage d'être gratuit est facile à implémenter. Si tu sais que tu vas avoir des requêtes simples (peu de jointures), ça marche très bien.

    Je travaille également avec PostgrSQL qui est top au niveau SQL. Par contre, pour des raisons de sécurité, on nous a demandé de monter en version et ça a été problématique (mémo binaires).

    SQL server, est bien mais plus lent que Oracle (qui a également des défauts).

    J'ai même vu des personnes qui se contentent (et adorent) Excel en Bdd...

    Bref, pour dire que le choix de moteur de bdd dépend de pas mal de facteurs... A analyser avant implémentation. Ou à subir après...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  4. #24
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 818
    Points : 5 285
    Points
    5 285
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Dans SQL92 sur lequel est calqué (à 99.9%) HFSQL lorsque l'on veut faire des calculs sur le résultat de calculs intermédiaires, il faut mettre ces calculs (intermédiaires) dans une sous requête.
    Grosso merdo, la requête devient,
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    SELECT
         Commande.NoCde AS NoCommande
         ......
         REQ_MAX.Max AS Maxi
         REQ_Tot.Total AS Total
         REQ_MAX.Max-REQ_Tot.Total AS Solde
    FROM
         Commande,
         (
         SELECT
              Max(TOTAL) AS MAX
         FROM
              Commande
         ) REQ_MAX,
         (
         SELECT
              Sum(TOTAL) As Total
         FROM
               FACTURE
         ) REQ_Tot
    --On est en SQL 92, le INNER JOIN est inutile
    WHERE
         COD_PROJET.IDCOD_PROJET = COMMANDC.IDCOD_PROJET
         AND
         FACTURE.NUM_CMD_SITUATION = COMMANDC.NUMEROC
    Remarque
    On peut saisir
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
         REQ_MAX.Max AS Maxi
         REQ_Tot.Total AS Total
         Maxi-Total AS Solde
    Mais l'éditeur le transforme en
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
         REQ_MAX.Max AS Maxi
         REQ_Tot.Total AS Total
         REQ_MAX.Max-REQ_Tot.Total AS Solde
    En ce qui concerne les CTE, elles ne sont apparues qu'avec SQL 98 tout comme les requêtes récursives
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Passer des requetes SQl aux fonctions HFSQL
    Par bluescaster dans le forum WinDev
    Réponses: 6
    Dernier message: 05/08/2018, 10h30
  2. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo