2017-09-08 1 views
-3

Vous cherchez une aide pour remplir les données de table1 à table2. J'ai la table1 des colonnes ci-dessous et l'échantillon de données comme ci-dessous. Quand jours est de 5 dont il a besoin pour remplir des données sur d'autres table_2 de 8 heures sur la base de jours (samedi et le dimanche doit être 0)PLsql ou Oracle Sql

Tableau 1:

id year month  days 
101 2017 September 5 
102 2017 September 4 
103 2017 September 3 
104 2017 September 2 

Tableau 2 qui doit être rempli que ci-dessous:

Id Month  1 2(Sat) 3(Sunday) 4 5 
101 September 8 0  0 8 8 8 8 
102 September 8 0  0 8 8 8 0 
103 September 8 0  0 8 8 0 0 
104 September 8 0  0 8 0 0 0 
+1

ce n'est pas clair –

Répondre

0

Vous obtenez le résultat souhaité avec:

select 
    id, 
    month, 
    case when days >= 1 then 8 end as friday, 
    0        as saturday, 
    0        as sunday, 
    case when days >= 2 then 8 end as monday, 
    case when days >= 3 then 8 end as tuesday, 
    case when days >= 4 then 8 end as wednesday, 
    case when days >= 5 then 8 end as thursday 
from table1 
where year = 2017; 

Afin de remplir table2 avec ces données, vous pouvez utiliser un insert sélectionner:

insert into table2 (id, month, saturday, sunday, monday, tuesday, wednesday, thursday) 
select 
    id, 
    ... 
from table1 
where year = 2017;