70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
# V_GRIGLIA
|
|
|
|
## Colonne
|
|
|
|
| Colonna | Tipo |
|
|
|---------|------|
|
|
| ID | NUMBER |
|
|
| TIPO_RIEPILOGO | VARCHAR2(20) |
|
|
| RNK | NUMBER |
|
|
| DES_TIPO | VARCHAR2(1000) |
|
|
| LUN | VARCHAR2(4000) |
|
|
| MAR | VARCHAR2(4000) |
|
|
| MER | VARCHAR2(4000) |
|
|
| GIO | VARCHAR2(4000) |
|
|
| VEN_1 | VARCHAR2(4000) |
|
|
| VEN_2 | VARCHAR2(4000) |
|
|
| SAB_1 | VARCHAR2(4000) |
|
|
| SAB_2 | VARCHAR2(4000) |
|
|
| DOM_1 | VARCHAR2(4000) |
|
|
| DOM_2 | VARCHAR2(4000) |
|
|
|
|
## Definizione
|
|
|
|
```sql
|
|
CREATE OR REPLACE VIEW V_GRIGLIA AS
|
|
with t as (
|
|
select to_char(data,'IW') week,
|
|
-- to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') giorno,
|
|
to_char(data,'d') giorno,
|
|
-- to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') * 100000 + E.ID giorno,
|
|
E.ID ,
|
|
DENSE_RANK() OVER (PARTITION BY to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') * 100000 ORDER BY e.id) rnk,
|
|
e.data,e.descrizione,
|
|
p.cod_articolo,
|
|
a.descrizione des_art,
|
|
a.cod_categ,
|
|
c.descrizione des_categ,
|
|
c.cod_tipo ,
|
|
t.descrizione des_tipo,
|
|
c.tipo_riepilogo
|
|
from eventi e
|
|
join eventi_det_prel p on e.id = p.id_evento
|
|
join articoli a on p.cod_articolo = a.cod_articolo
|
|
join tb_codici_categ c on a.cod_categ = c.cod_categ
|
|
join tb_tipi_mat t on c.cod_tipo = t.cod_tipo
|
|
-- where to_char(data,'IW') = to_char(to_date(:P14_SETTIMANA,'DD-MON-YYYY'),'IW')
|
|
where to_char(data,'IW') = to_char(to_date('05-MAY-2018','DD-MON-YYYY'),'IW')
|
|
|
|
)
|
|
, t_des as (
|
|
select ID,rnk,
|
|
t.tipo_riepilogo,
|
|
t.DES_TIPO,
|
|
t.descrizione,
|
|
case when giorno = 1 then t.DES_ART end DOM_1,
|
|
case when giorno = 1 then t.DES_ART end DOM_2,
|
|
case when giorno = 2 then t.DES_ART end LUN,
|
|
case when giorno = 3 then t.DES_ART end MAR,
|
|
case when giorno = 4 then t.DES_ART end MER,
|
|
case when giorno = 5 then t.DES_ART end GIO,
|
|
case when giorno = 6 and rnk =1 then t.DES_ART else '1-' end VEN_1,
|
|
case when giorno = 6 and rnk =2 then t.DES_ART else '2-' end VEN_2,
|
|
case when giorno = 7 then t.DES_ART else '1-' end SAB_1,
|
|
case when giorno = 7 then t.DES_ART else '2-' end SAB_2
|
|
from t
|
|
)
|
|
select id, tipo_riepilogo,rnk, DES_TIPO,LUN, MAR, MER, GIO, VEN_1,VEN_2, SAB_1, SAB_2, DOM_1, DOM_2
|
|
from t_des
|
|
```
|