MySQL PIVOT



create table User_Items
(
  Cust_Names varchar(10),
  Item_Type  varchar(50),
  Item_Amount float
);

insert into User_Items values
('Alison', 'Computer', 345.39),
('Alison', 'Monitor', 123.45),
('Alison', 'Monitor', 303.45),
('Alison', 'Software', 78.78),
('Jason', 'Computer', 435.34),
('Jason', 'Computer', 131.74),
('Jason', 'Computer', 75.89),
('Jason', 'Monitor', 158.23),
('Jason', 'Software', 243.54);

create view User_Items_Extended as (
  select
    User_Items.Cust_Names,
    case when Item_Type = "Computer" then Item_Amount end as Computer,
    case when Item_Type = "Monitor" then Item_Amount end as Monitor,
    case when Item_Type = "Software" then Item_Amount end as Software
  from User_Items
);

create view User_Items_Extended_Pivot as (
  select
    Cust_Names,
    sum(Computer) as Computer,
    sum(Monitor) as Monitor,
    sum(Software) as Software 
  from User_Items_Extended
  group by Cust_Names
);

create view User_Items_Extended_Pivot_Pretty as (
  select 
    Cust_Names, 
    coalesce(Computer, 0) as Computer, 
    coalesce(Monitor, 0) as Monitor, 
    coalesce(Software, 0) as Software
  from User_Items_Extended_Pivot
);

Select * FROM User_Items_Extended_Pivot_Pretty

Comentarios

Entradas populares de este blog

Para que sirve la N en SQL Server

MYSQL : CURSORES

SQL SERVER : EJECUTAR UN PAQUETE SSIS