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

Développement SQL Server Discussion :

Aide pour une requete


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Aide pour une requete
    Bonjour,
    je suis amené à modifier notre une appli web vb couplé à une base de donnée MS SQL.
    Actullement il existe une requete qui renvoie le dernier numéro-PC libre. Voici la fonction:
    Code : 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
    27
    28
    29
        Sub calc_id_disque()
     
            Dim mon_sql_reader As SqlDataReader
            Dim req_sql As String
            Dim str_val As String
     
            Try
     
                req_sql = "SELECT max(SUBSTRING(num_disque, 7, 4)) "
                req_sql = req_sql + "FROM disque "
                req_sql = req_sql + "ORDER BY max(SUBSTRING(num_disque, 7, 4))"
     
                myCommand = New SqlCommand(req_sql, ISI.Global.Oconn)
                mon_sql_reader = myCommand.ExecuteReader()
     
                mon_sql_reader.Read()
                Me.lbl_id_disque.Text = "N° disque : SPC-D-"
                str_val = Int(mon_sql_reader(0).ToString()) + 1
                Me.lbl_id_disque.Text = Me.lbl_id_disque.Text & str_val.PadLeft(4, "0")
     
                mon_sql_reader.Close()
     
            Catch ex As Exception
                mon_sql_reader.Close()
            Finally
     
            End Try
     
        End Sub
    Le problème avec cette requete c'est qu'elle ne tient pas compte des numéros qui n'existent plus, apparement, elle se contente uniquement d'incrementer le dernier chiffre.

    Pouvez-vous m'aider à modifier cette requête de manière à ce qu'elle prenne en compte les numéros intermédiare?

    J'espère avoir été clair.

    Merci pour votre aide.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut requete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT max(SUBSTRING(num_disque, 7, 4)) FROM disque  ORDER BY max(SUBSTRING(num_disque, 7, 4))
    cette requete decoupe le numero de disque à partir du 7 eme caractere sur 4 caractere, prend parmi ses "numeros decoupes" le plus grand et l'affiche en premier dans la liste.

    tu ne trouveras pas la solution de ton problème en modifiant cette requete.

    il faut agir en UPDATE sur num_disque pour prendre en compte les suppression.

    Essaye de realiser ton compteur autrement, c'est du bidouillage ce que tu veux faire...

    Bon courage.

    PS : tu peux essayer de remplacer le Max() par un Count(), cela prendra en compte les suppressions...

Discussions similaires

  1. Besoin d'aide pour une requete
    Par jnc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 11h54
  2. aide pour une requete
    Par graphicsxp dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2005, 15h02
  3. Aide pour une requete SQL
    Par hpghost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/01/2005, 15h01
  4. Aide pour une requete SQL
    Par hpghost dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 08/01/2005, 10h15
  5. Aide pour une requete ... "COUNT(*)"
    Par mechantebestiole dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/05/2004, 16h27

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