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

SQL Oracle Discussion :

Microsoft query / Excel / Sql developper : date a 00:00


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable de trafic
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Par défaut Microsoft query / Excel / Sql developper : date a 00:00
    Bonjour,
    J'ai un problème avec des heures dans une requête microsoft query => Excel

    Je travaille sur une base oracle avec Sql developper j'ai créé une vue qui fonctionne parfaitement code ci-dessous, aperçu en pièce jointe.
    Sur sql developper j'ai bien une colonne QUART (qui correspond au quart d'heure du jour) et une colonne NO_QUART (qui correspond au numéro du quart d'heure du jour).

    Je récupère dans excel uniquement une valeur à 00:00 et le numéro de quart d'heure à 1 pour toutes les lignes ainsi que dans ms query.

    Pouvez-vous m'aider à trouver mon erreur ou trouver une solution de connexion entre excel et cette base oracle qui permette de contourner ce problème ?
    Par la même occasion, si quelqu'un connais une façon plus propre que le CASE pour la vue, je suis preneur.

    Merci d'avance.

    Code de la vue sql :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    CREATE OR REPLACE FORCE VIEW "ADM"."TBL_BD_BRUT_2017" ("DEBIT", "PTM_ID", "NO_JOUR", "QUART", "NO_QUART")
    AS
      SELECT (mfq_debit/4),
        ptm_id,
        TO_CHAR(TO_DATE(mfq_hd,'DD/MM/RR HH24:MI'), 'DDD'),
        TO_CHAR(TO_DATE(mfq_hd,'DD/MM/RR HH24:MI'), 'HH24:MI'),
        CASE TO_CHAR(TO_DATE(mfq_hd,'DD/MM/RR HH24:MI'), 'HH24:MI')
          WHEN '00:00'
          THEN 1
          WHEN '00:15'
          THEN 2
          WHEN '00:30'
          THEN 3
          WHEN '00:45'
          THEN 4
          WHEN '01:00'
          THEN 5
          WHEN '01:15'
          THEN 6
          WHEN '01:30'
          THEN 7
          WHEN '01:45'
          THEN 8
          WHEN '02:00'
          THEN 9
          WHEN '02:15'
          THEN 10
          WHEN '02:30'
          THEN 11
          WHEN '02:45'
          THEN 12
          WHEN '03:00'
          THEN 13
          WHEN '03:15'
          THEN 14
          WHEN '03:30'
          THEN 15
          WHEN '03:45'
          THEN 16
          WHEN '04:00'
          THEN 17
          WHEN '04:15'
          THEN 18
          WHEN '04:30'
          THEN 19
          WHEN '04:45'
          THEN 20
          WHEN '05:00'
          THEN 21
          WHEN '05:15'
          THEN 22
          WHEN '05:30'
          THEN 23
          WHEN '05:45'
          THEN 24
          WHEN '06:00'
          THEN 25
          WHEN '06:15'
          THEN 26
          WHEN '06:30'
          THEN 27
          WHEN '06:45'
          THEN 28
          WHEN '07:00'
          THEN 29
          WHEN '07:15'
          THEN 30
          WHEN '07:30'
          THEN 31
          WHEN '07:45'
          THEN 32
          WHEN '08:00'
          THEN 33
          WHEN '08:15'
          THEN 34
          WHEN '08:30'
          THEN 35
          WHEN '08:45'
          THEN 36
          WHEN '09:00'
          THEN 37
          WHEN '09:15'
          THEN 38
          WHEN '09:30'
          THEN 39
          WHEN '09:45'
          THEN 40
          WHEN '10:00'
          THEN 41
          WHEN '10:15'
          THEN 42
          WHEN '10:30'
          THEN 43
          WHEN '10:45'
          THEN 44
          WHEN '11:00'
          THEN 45
          WHEN '11:15'
          THEN 46
          WHEN '11:30'
          THEN 47
          WHEN '11:45'
          THEN 48
          WHEN '12:00'
          THEN 49
          WHEN '12:15'
          THEN 50
          WHEN '12:30'
          THEN 51
          WHEN '12:45'
          THEN 52
          WHEN '13:00'
          THEN 53
          WHEN '13:15'
          THEN 54
          WHEN '13:30'
          THEN 55
          WHEN '13:45'
          THEN 56
          WHEN '14:00'
          THEN 57
          WHEN '14:15'
          THEN 58
          WHEN '14:30'
          THEN 59
          WHEN '14:45'
          THEN 60
          WHEN '15:00'
          THEN 61
          WHEN '15:15'
          THEN 62
          WHEN '15:30'
          THEN 63
          WHEN '15:45'
          THEN 64
          WHEN '16:00'
          THEN 65
          WHEN '16:15'
          THEN 66
          WHEN '16:30'
          THEN 67
          WHEN '16:45'
          THEN 68
          WHEN '17:00'
          THEN 69
          WHEN '17:15'
          THEN 70
          WHEN '17:30'
          THEN 71
          WHEN '17:45'
          THEN 72
          WHEN '18:00'
          THEN 73
          WHEN '18:15'
          THEN 74
          WHEN '18:30'
          THEN 75
          WHEN '18:45'
          THEN 76
          WHEN '19:00'
          THEN 77
          WHEN '19:15'
          THEN 78
          WHEN '19:30'
          THEN 79
          WHEN '19:45'
          THEN 80
          WHEN '20:00'
          THEN 81
          WHEN '20:15'
          THEN 82
          WHEN '20:30'
          THEN 83
          WHEN '20:45'
          THEN 84
          WHEN '21:00'
          THEN 85
          WHEN '21:15'
          THEN 86
          WHEN '21:30'
          THEN 87
          WHEN '21:45'
          THEN 88
          WHEN '22:00'
          THEN 89
          WHEN '22:15'
          THEN 90
          WHEN '22:30'
          THEN 91
          WHEN '22:45'
          THEN 92
          WHEN '23:00'
          THEN 93
          WHEN '23:15'
          THEN 94
          WHEN '23:30'
          THEN 95
          WHEN '23:45'
          THEN 96
          ELSE 99
        END as NO_QUART
      FROM HST_MES_FLUX_15
      WHERE mfq_hd  >'01/01/2017'
      AND mfq_hd    <'01/01/2018'
      AND mfq_debit<>-1
      ORDER BY PTM_ID,
        TO_CHAR(TO_DATE(mfq_hd,'DD/MM/RR HH24:MI'), 'DDD'), NO_QUART;

    Nom : sql developper.PNG
Affichages : 280
Taille : 61,4 KoNom : Ms query.PNG
Affichages : 275
Taille : 46,6 KoNom : Excel.PNG
Affichages : 291
Taille : 132,6 Ko

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Commencez par indiquer quelle est votre erreur et quelle est la correction !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Pour le CASE vous pouvez passer par une CTE qui génère les tranches et joindre la table dessus, ou même créer une tables des tranches, par exemple :
    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
    create table HST_MES_FLUX_15 as 
    select to_date('01/01/2017 05:45:00') as mfq_hd from dual union all
    select to_date('01/01/2017 08:30:00') from dual union all
    select to_date('01/01/2017 20:00:00') from dual union all
    select to_date('01/01/2017 22:47:00') from dual;
     
     
      with tranches as (
    select to_char(trunc(sysdate)+15*(level-1)/24/60,'HH24:MI') as quart, level as NO_QUART
      from dual
    connect by level <= 4*24
    )
    select h.mfq_hd, to_char(h.mfq_hd,'HH24:MI'), nvl(NO_QUART,99) as NO_QUART
      from HST_MES_FLUX_15 h
      left join tranches t 
        on to_char(h.mfq_hd,'HH24:MI') = t.quart
     
    MFQ_HD              TO_CH   NO_QUART
    ------------------- ----- ----------
    01/01/2017 05:45:00 05:45         24
    01/01/2017 08:30:00 08:30         35
    01/01/2017 20:00:00 20:00         81
    01/01/2017 22:47:00 22:47         99
    Ensuite, très important, quel est le type de donnée de la colonne MFQ_HD, DATE ou VARCHAR2 ?

Discussions similaires

  1. SQL-microsoft query dans EXCEL
    Par flojack dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/11/2015, 10h10
  2. Réponses: 2
    Dernier message: 20/11/2012, 11h47
  3. Microsoft Query excel 2003
    Par munity dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/01/2011, 16h02
  4. E-03 Date avec microsoft query
    Par loulag07 dans le forum Excel
    Réponses: 4
    Dernier message: 04/12/2007, 14h46
  5. [EXCEL] Stopper Microsoft Query
    Par Invité dans le forum Excel
    Réponses: 4
    Dernier message: 15/01/2007, 12h15

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