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 :

Comment mon query atteint ma sélection dans toutes les tables ?


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Comment mon query atteint ma sélection dans toutes les tables ?
    Bonjour à tous,

    je suis orienté vers vous pour m'aider sur un script que je suis en train de le monter.

    en résumé:

    je voulais faire une sélection bien précise dans une colonne dans le temps souhaité;
    voir le query :

    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
    SELECT
     
    [Time]
    ,[TagName]
    ,[LoggingNode]
    ,[AlarmType]
    ,[Priority]
    ,[Limit]
    ,[LimitString]
    ,[AlarmValue]
    ,[ValueString]
    ,[OriginationTimeFracSec]
    ,[OriginationTimeZoneOffset]
    ,[OriginationDaylightAdjustment]
    FROM [WWALMDB].[dbo].[AlarmMaster]
    where TIME between '2019-06-20 00:00:00' and '2019-06-20 23:59:59'
    and TagName like '%.pi%'
    ORDER BY Time ASC;


    Mon query est bien fonctionnel sauf qu'il me donne pas toutes ma sélection rechercher parce qu'elle est existé dans autres tables ; et moi j'ai précisé que la table où je le connais ‘FROM [WWALMDB].[dbo].[AlarmMaster]
    comment je puisse atteindre ma sélection dans toutes les tables .

    Merci pour votre retour
    Othmane

  2. #2
    Modérateur

    Ces autres tables dans lesquelles tu veux rechercher ont-elles la même structure ?
    Sinon dois-tu en retourner les mêmes colonnes ?
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Nouveau membre du Club
    Citation Envoyé par al1_24 Voir le message
    Ces autres tables dans lesquelles tu veux rechercher ont-elles la même structure ?
    Sinon dois-tu en retourner les mêmes colonnes ?
    non je connais pas s'elles ont la même structure,
    j'ai réduis le nombre de colonne à afficher pour évitant le max les erreurs

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT
    *
    [Time]
    ,[TagName]
    ,[AlarmValue]
    ,[ValueString]
     
    FROM [WWALMDB].[dbo].[AlarmMaster]
    where TIME between '2019-06-20 00:00:00' and '2019-06-20 23:59:59'
    and TagName like '%.pi%'
    ORDER BY Time ASC;

    Salutations

  4. #4
    Modérateur

    Il ne te reste qu'à écrire une procédure qui va rechercher dans le dictionnaire de données la liste des tables contenant les colonnes sur lesquelles tu effectues ta restriction et celles que tu veux retourner, puis faire une série de UNION ALL sur lesdites tables pour avoir la liste des valeurs que tu recherches.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Expert éminent sénior
    Bonjour,

    il faut effectivement construire une requête en s'appuyant sur le catalogue.
    De plus, je vois qu'il y a un grand nombre de crochets inutiles, pourquoi pas, mais il en manque là où ils sont requis.
    Par exemple cette clause where TIME between '2019-06-20 00:00:00' and '2019-06-20 23:59:59'.
    va certainement couiner car TIME est un mot réservé SQL.
    Avoir nommé une colonne ainsi n'est pas très judicieux et impose justement l'utilisation des crochets.

###raw>template_hook.ano_emploi###