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 :

SELECT compliqué je cherche de l'aide pour démarrer


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 11
    Points : 11
    Points
    11
    Par défaut SELECT compliqué je cherche de l'aide pour démarrer
    Bonjour a tous je souhaite "convertir" mon tableau sous un autre format je m'explique

    J'ai un tableau sous cette forme suite a un parsing sur une colonne

    COLONNE_A | RETSEQ | COLONNE_B
    key1 | 1 | parsval1left
    key1 | 2 | parsval1rigth
    key2 | 1 | parsval2left
    key2 | 2 | parsval2rigth
    ....

    en gros je parse une colonne d'un autre tableau en 2 parties qui sont,
    parsvalXleft qui est la partie de gauche et bis repetita pour parsvalXrigth
    (keyX représente une référence de pièce, parsvalXleft représente un numéro de vente,
    et parsvalXrigth représente la ligne du numéro de vente si vous voulez un peu plus de contexte
    petite note : comme on vend plusieurs fois la même pièce keyX n'est pas une clé primaire,
    je sais pas si ça change grand chose mais je préfère le dire)
    et je voudrais le rentrer dans un tableau sous cette forme


    COLONNE_A | COLONNE_B | COLONNE_C
    key1 | parsval1left | parsval1rigth
    key2 | parsval2left | parsval2rigth
    ......

    Si vous voulez la méthode utilisée pour parser la voila
    (la fonction je l'ai complètement pompée ailleurs je me rappelle plus vraiment où mais si vous avez quelque chose de plus simple je prend)

    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
     
    CREATE FUNCTION [dbo].[udf-Str-Parse-8K] (@String varchar(max),@Delimiter varchar(10))
    Returns Table 
    As
    Return (  
        with   cte1(N)   As (Select 1 From (Values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) N(N)),
               cte2(N)   As (Select Top (IsNull(DataLength(@String),0)) Row_Number() over (Order By (Select NULL)) From (Select N=1 From cte1 a,cte1 b,cte1 c,cte1 d) A ),
               cte3(N)   As (Select 1 Union All Select t.N+DataLength(@Delimiter) From cte2 t Where Substring(@String,t.N,DataLength(@Delimiter)) = @Delimiter),
               cte4(N,L) As (Select S.N,IsNull(NullIf(CharIndex(@Delimiter,@String,s.N),0)-S.N,8000) From cte3 S)
     
        Select RetSeq = Row_Number() over (Order By A.N)
              ,RetVal = Substring(@String, A.N, A.L) 
        From   cte4 A
    );
     
    SELECT start.Part_No,
    		 B.*
    		FROM PARADEMODW.dbo.Oracle_Report_Brut_Splitted AS start
    		cross Apply [dbo].[udf-Str-Parse-8k](start.SO_No_SO_Line_No, '/') As B
    		WHERE start.Reference LIKE '%STOCK%' AND Reference NOT LIKE '%PREV%'
    Comme je bosse sur SQL server 2014 pas de STRING_SPLIT dispo

    Merci a ceux et qui prennent le temps de lire et/ou de répondre
    Gardez le feu brûlant dans votre cœur

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Effectuez une recherche avec le mot clef "pivot", vous trouverez de nombreux exemples sur le forum.
    comme vous êtes sous 2014, vous pouvez même utiliser directement PIVOT

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/04/2009, 11h45
  2. Cherche de l'aide pour éventuellement créer un GUI
    Par nfs65 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/12/2006, 18h48
  3. Novice cherche de l'aide pour diaporama
    Par john38 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 18/07/2006, 18h16
  4. cherche de l'aide pour une solution
    Par ouam81 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 31/05/2005, 08h57

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