2016-09-20 77 views
1

我有一个Pentaho作业,在那,我们正在做一些与数据透视表的规范化表。我想把它改成SQL服务器。 我的SQL Server有以下数据:Pentaho迁移到SQL Server数据透视表合并和分组

Rep_Create_Date InventoryID Beg_Bal_Pennies Beg_Bal_Nickels Beg_Bal_Dimes Beg_Bal_Quaters Beg_Bal_Halves Beg_Bal_Dollar Beg_Bal_Loose Beg_Bal_Ones Beg_Bal_Twos Beg_Bal_Fives Beg_Bal_Tens Beg_Bal_Twenties Beg_Bal_Fifties Beg_Bal_Hundreds Inb_Bulk_Pennies Inb_Bulk_Nickels Inb_Bulk_Dimes Inb_Bulk_Quaters Inb_Bulk_Halves Inb_Bulk_Dollar Inb_Bulk_Loose Inb_Bulk_Ones Inb_Bulk_Twos Inb_Bulk_Fives Inb_Bulk_Tens Inb_Bulk_Twenties Inb_Bulk_Fifties Inb_Bulk_Hundreds Out_Bulk_Pennies Out_Bulk_Nickels Out_Bulk_Dimes Out_Bulk_Quaters Out_Bulk_Halves Out_Bulk_Dollar Out_Bulk_Loose Out_Bulk_Ones Out_Bulk_Twos Out_Bulk_Fives Out_Bulk_Tens Out_Bulk_Twenties Out_Bulk_Fifties Out_Bulk_Hundreds Out_Pack_Pennies Out_Pack_Nickels Out_Pack_Dimes Out_Pack_Quaters Out_Pack_Halves Out_Pack_Dollar Out_Pack_Loose Out_Pack_Ones Out_Pack_Twos Out_Pack_Fives Out_Pack_Tens Out_Pack_Twenties Out_Pack_Fifties Out_Pack_Hundreds Inv_Tran_Pennies Inv_Tran_Nickels Inv_Tran_Dimes Inv_Tran_Quaters Inv_Tran_Halves Inv_Tran_Dollar Inv_Tran_Loose Inv_Tran_Ones Inv_Tran_Twos Inv_Tran_Fives Inv_Tran_Tens Inv_Tran_Twenties Inv_Tran_Fifties Inv_Tran_Hundreds Inv_Adj_Pennies Inv_Adj_Nickels Inv_Adj_Dimes Inv_Adj_Quaters Inv_Adj_Halves Inv_Adj_Dollar Inv_Adj_Loose Inv_Adj_Ones Inv_Adj_Twos Inv_Adj_Fives Inv_Adj_Tens Inv_Adj_Twenties Inv_Adj_Fifties Inv_Adj_Hundreds Phy_Bal_Pennies  Phy_Bal_Nickels Phy_Bal_Dimes Phy_Bal_Quaters Phy_Bal_Halves Phy_Bal_Dollar Phy_Bal_Loose Phy_Bal_Ones Phy_Bal_Twos Phy_Bal_Fives Phy_Bal_Tens Phy_Bal_Twenties Phy_Bal_Fifties Phy_Bal_Hundreds  
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
20160907   014   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   354060.00  0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   41900.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   00.00    0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00     0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00     0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00  0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   395960.00     0.00   0.00          
20160907   018   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   919600.00  0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   347060.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   00.00    0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   304000.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00     0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00  0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   962660.00     0.00   0.00            
20160907   050   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   970300.00  0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   13860.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   00.00    0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   130000.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00     0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00  0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   85416000     0.00   0.00           
20160907   073   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   1517360.00  0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   494860.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   00.00    0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   606000.00    0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00     0.00   0.00   0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00  0.00   0.00    0.00    0.00    0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00   0.00   1406220.00    0.00   0.00 

只有四个记录有此表说tableSourcePentaho。 Pentaho的是做表的规范化与下面的模式,我们正在改变字段为newNames和它们分组按denoms

Fieldname    Type    new Field 
------------------------------------------------------- 
Beg_Bal_Pennies   1     Beg_Bal 
Beg_Bal_Nickels   5     Beg_Bal 
Beg_Bal_Dimes   10     Beg_Bal 
Beg_Bal_Quaters   25     Beg_Bal 
Beg_Bal_Halves   50     Beg_Bal 
Beg_Bal_Dollar   101    Beg_Bal 
Beg_Bal_Loose   98     Beg_Bal 
Beg_Bal_Ones    100    Beg_Bal 
Beg_Bal_Twos    200    Beg_Bal 
Beg_Bal_Fives   500    Beg_Bal 
Beg_Bal_Tens    1000    Beg_Bal 
Beg_Bal_Twenties   2000    Beg_Bal 
Beg_Bal_Fifties   5000    Beg_Bal 
Beg_Bal_Hundreds   10000    Beg_Bal 
Inb_Bulk_Pennies   1     Cash_In 
Inb_Bulk_Nickels   5     Cash_In 
Inb_Bulk_Dimes   10    Cash_In 
Inb_Bulk_Quaters   25    Cash_In 
Inb_Bulk_Halves   50    Cash_In 
Inb_Bulk_Dollar   101    Cash_In 
Inb_Bulk_Loose   98    Cash_In 
Inb_Bulk_Ones    100    Cash_In 
Inb_Bulk_Twos    200    Cash_In 
Inb_Bulk_Fives   500    Cash_In 
Inb_Bulk_Tens    1000    Cash_In 
Inb_Bulk_Twenties   2000    Cash_In 
Inb_Bulk_Fifties   5000    Cash_In 
Inb_Bulk_Hundreds   10000    Cash_In 
Out_Pack_Pennies   1     Cash_Out 
Out_Pack_Nickels   5     Cash_Out 
Out_Pack_Dimes   10    Cash_Out 
Out_Pack_Quaters   25    Cash_Out 
Out_Pack_Halves   50    Cash_Out 
Out_Pack_Dollar   101    Cash_Out 
Out_Pack_Loose   98    Cash_Out 
Out_Pack_Ones    100    Cash_Out 
Out_Pack_Twos    200    Cash_Out 
Out_Pack_Fives   500    Cash_Out 
Out_Pack_Tens    1000    Cash_Out 
Out_Pack_Twenties   2000    Cash_Out 
Out_Pack_Fifties   5000    Cash_Out 
Out_Pack_Hundreds   10000    Cash_Out 
Inv_Adj_Pennies   1     Inv_Adj 
Inv_Adj_Nickels   5     Inv_Adj 
Inv_Adj_Dimes    10    Inv_Adj 
Inv_Adj_Quaters   25    Inv_Adj 
Inv_Adj_Halves   50    Inv_Adj 
Inv_Adj_Dollar   101    Inv_Adj 
Inv_Adj_Loose    98    Inv_Adj 
Inv_Adj_Ones    100    Inv_Adj 
Inv_Adj_Twos    200    Inv_Adj 
Inv_Adj_Fives    500    Inv_Adj 
Inv_Adj_Tens    1000    Inv_Adj 
Inv_Adj_Twenties   2000    Inv_Adj 
Inv_Adj_Fifties   5000    Inv_Adj 
Inv_Adj_Hundreds   10000    Inv_Adj 
Phy_Bal_Pennies   1     Phy_Bal 
Phy_Bal_Nickels   5     Phy_Bal 
Phy_Bal_Dimes    10    Phy_Bal 
Phy_Bal_Quaters   25    Phy_Bal 
Phy_Bal_Halves   50    Phy_Bal 
Phy_Bal_Dollar   101    Phy_Bal 
Phy_Bal_Loose    98    Phy_Bal 
Phy_Bal_Ones    100    Phy_Bal 
Phy_Bal_Twos    200    Phy_Bal 
Phy_Bal_Fives    500    Phy_Bal 
Phy_Bal_Tens    1000    Phy_Bal 
Phy_Bal_Twenties   2000    Phy_Bal 
Phy_Bal_Fifties   5000    Phy_Bal 
Phy_Bal_Hundreds   10000    Phy_Bal 
Inv_Tran_Pennies   1    Ship_In 
Inv_Tran_Nickels   5    Ship_In 
Inv_Tran_Dimes    10    Ship_In 
Inv_Tran_Quaters   25    Ship_In 
Inv_Tran_Halves   50    Ship_In 
Inv_Tran_Dollar   101    Ship_In 
Inv_Tran_Loose    98    Ship_In 
Inv_Tran_Ones    100    Ship_In 
Inv_Tran_Twos    200    Ship_In 
Inv_Tran_Fives    500    Ship_In 
Inv_Tran_Tens    1000    Ship_In 
Inv_Tran_Twenties   2000    Ship_In 
Inv_Tran_Fifties   5000    Ship_In 
Inv_Tran_Hundreds   10000   Ship_In 
Out_Bulk_Pennies   1    Ship_Out 
Out_Bulk_Nickels   5    Ship_Out 
Out_Bulk_Dimes    10    Ship_Out 
Out_Bulk_Quaters   25    Ship_Out 
Out_Bulk_Halves   50    Ship_Out 
Out_Bulk_Dollar   101    Ship_Out 
Out_Bulk_Loose    98    Ship_Out 
Out_Bulk_Ones    100    Ship_Out 
Out_Bulk_Twos    200    Ship_Out 
Out_Bulk_Fives    500    Ship_Out 
Out_Bulk_Tens    1000    Ship_Out 
Out_Bulk_Twenties   2000    Ship_Out 
Out_Bulk_Fifties   5000    Ship_Out 
Out_Bulk_Hundreds   10000   Ship_Out 

我们没有做这方面的任何aggregation,所以我想/透视表转换成targetTable其中查询结果必须在以下几点:

InventoryID, Rep_Create_Date, Denom, Beg_Bal, Phy_Bal, Cash_In, Cash_Out, Ship_In, Ship_Out, Inv_Adj 
014   20160907   1  000   000   000   000   000  000   000 
014   20160907   5  000   000   000   000   000  000   000 
014   20160907   10  000   000   000   000   000  000   000 
014   20160907   25  000   000   000   000   000  000   000 
014   20160907   50  000   000   000   000   000  000   000 
014   20160907   101  000   000   000   000   000  000   000 
014   20160907   98  000   000   000   000   000  000   000 
014   20160907   100  000   000   000   000   000  000   000 
014   20160907   200  000   000   000   000   000  000   000 
014   20160907   500  000   000   000   000   000  000   000 
014   20160907   1000 000   000   000   000   000  000   000 
014   20160907   2000 35406000 39596000 4190000  000   000  000   000 
014   20160907   5000 000   000   000   000   000  000   000 
014   20160907   10000 000   000   000   000   000  000   000 
018   20160907   1  000   000   000   000   000  000   000 
018   20160907   5  000   000   000   000   000  000   000 
018   20160907   10  000   000   000   000   000  000   000 
018   20160907   25  000   000   000   000   000  000   000 
018   20160907   50  000   000   000   000   000  000   000 
018   20160907   101  000   000   000   000   000  000   000 
018   20160907   98  000   000   000   000   000  000   000 
018   20160907   100  000   000   000   000   000  000   000 
018   20160907   200  000   000   000   000   000  000   000 
018   20160907   500  000   000   000   000   000  000   000 
018   20160907   1000 000   000   000   000   000  000   000 
018   20160907   2000 91960000 96266000 34706000 30400000 000  000   000 
018   20160907   5000 000   000   000   000   000  000   000 
018   20160907   10000 000   000   000   000   000  000   000 
050   20160907   1  000   000   000   000   000  000   000 
050   20160907   5  000   000   000   000   000  000   000 
050   20160907   10  000   000   000   000   000  000   000 
050   20160907   25  000   000   000   000   000  000   000 
050   20160907   50  000   000   000   000   000  000   000 
050   20160907   101  000   000   000   000   000  000   000 
050   20160907   98  000   000   000   000   000  000   000 
050   20160907   100  000   000   000   000   000  000   000 
050   20160907   200  000   000   000   000   000  000   000 
050   20160907   500  000   000   000   000   000  000   000 
050   20160907   1000 000   000   000   000   000  000   000 
050   20160907   2000 97030000 85416000 1386000  13000000 000  000   000 
050   20160907   5000 000   000   000   000   000  000   000 
050   20160907   10000 000   000   000   000   000  000   000 
073   20160907   1  000   000   000   000   000  000   000 
073   20160907   5  000   000   000   000   000  000   000 
073   20160907   10  000   000   000   000   000  000   000 
073   20160907   25  000   000   000   000   000  000   000 
073   20160907   50  000   000   000   000   000  000   000 
073   20160907   101  000   000   000   000   000  000   000 
073   20160907   98  000   000   000   000   000  000   000 
073   20160907   100  000   000   000   000   000  000   000 
073   20160907   200  000   000   000   000   000  000   000 
073   20160907   500  000   000   000   000   000  000   000 
073   20160907   1000 000   000   000   000   000  000   000 
073   20160907   2000 151736000 140622000 49486000 60600000 000  000   000 
073   20160907   5000 000   000   000   000   000  000   000 
073   20160907   10000 000   000   000   000   000  000   000 

我试图像Transpose rows and columns with no aggregatePivot rows to columns without aggregate,但没有得到正是我要找的东西。请帮我摆脱这一点。我是数据库中的newbiew。

PS:抱歉长问题。 :(

回答

2

Here是解决方案,它在一次“逆转置多列”的伟大工程。 它通过建立样本数据的前面,所以找的评论后的溶液。

IF OBJECT_ID('TestData') IS NOT NULL 
    DROP TABLE TestData; 

CREATE TABLE TestData(
    Rep_Create_Date DATE 
    ,InventoryID  INTEGER 
    ,Beg_Bal_Pennies NUMERIC(10,2) 
    ,Beg_Bal_Nickels NUMERIC(10,2) 
    ,Beg_Bal_Dimes  NUMERIC(10,2) 
    ,Beg_Bal_Quaters NUMERIC(10,2) 
    ,Beg_Bal_Halves NUMERIC(10,2) 
    ,Beg_Bal_Dollar NUMERIC(10,2) 
    ,Beg_Bal_Loose  NUMERIC(10,2) 
    ,Beg_Bal_Ones  NUMERIC(10,2) 
    ,Beg_Bal_Twos  NUMERIC(10,2) 
    ,Beg_Bal_Fives  NUMERIC(10,2) 
    ,Beg_Bal_Tens  NUMERIC(10,2) 
    ,Beg_Bal_Twenties NUMERIC(10,2) 
    ,Beg_Bal_Fifties NUMERIC(10,2) 
    ,Beg_Bal_Hundreds NUMERIC(10,2) 
    ,Inb_Bulk_Pennies NUMERIC(10,2) 
    ,Inb_Bulk_Nickels NUMERIC(10,2) 
    ,Inb_Bulk_Dimes NUMERIC(10,2) 
    ,Inb_Bulk_Quaters NUMERIC(10,2) 
    ,Inb_Bulk_Halves NUMERIC(10,2) 
    ,Inb_Bulk_Dollar NUMERIC(10,2) 
    ,Inb_Bulk_Loose NUMERIC(10,2) 
    ,Inb_Bulk_Ones  NUMERIC(10,2) 
    ,Inb_Bulk_Twos  NUMERIC(10,2) 
    ,Inb_Bulk_Fives NUMERIC(10,2) 
    ,Inb_Bulk_Tens  NUMERIC(10,2) 
    ,Inb_Bulk_Twenties NUMERIC(10,2) 
    ,Inb_Bulk_Fifties NUMERIC(10,2) 
    ,Inb_Bulk_Hundreds NUMERIC(10,2) 
    ,Out_Bulk_Pennies NUMERIC(10,2) 
    ,Out_Bulk_Nickels NUMERIC(10,2) 
    ,Out_Bulk_Dimes NUMERIC(10,2) 
    ,Out_Bulk_Quaters NUMERIC(10,2) 
    ,Out_Bulk_Halves NUMERIC(10,2) 
    ,Out_Bulk_Dollar NUMERIC(10,2) 
    ,Out_Bulk_Loose NUMERIC(10,2) 
    ,Out_Bulk_Ones  NUMERIC(10,2) 
    ,Out_Bulk_Twos  NUMERIC(10,2) 
    ,Out_Bulk_Fives NUMERIC(10,2) 
    ,Out_Bulk_Tens  NUMERIC(10,2) 
    ,Out_Bulk_Twenties NUMERIC(10,2) 
    ,Out_Bulk_Fifties NUMERIC(10,2) 
    ,Out_Bulk_Hundreds NUMERIC(10,2) 
    ,Out_Pack_Pennies NUMERIC(10,2) 
    ,Out_Pack_Nickels NUMERIC(10,2) 
    ,Out_Pack_Dimes NUMERIC(10,2) 
    ,Out_Pack_Quaters NUMERIC(10,2) 
    ,Out_Pack_Halves NUMERIC(10,2) 
    ,Out_Pack_Dollar NUMERIC(10,2) 
    ,Out_Pack_Loose NUMERIC(10,2) 
    ,Out_Pack_Ones  NUMERIC(10,2) 
    ,Out_Pack_Twos  NUMERIC(10,2) 
    ,Out_Pack_Fives NUMERIC(10,2) 
    ,Out_Pack_Tens  NUMERIC(10,2) 
    ,Out_Pack_Twenties NUMERIC(10,2) 
    ,Out_Pack_Fifties NUMERIC(10,2) 
    ,Out_Pack_Hundreds NUMERIC(10,2) 
    ,Inv_Tran_Pennies NUMERIC(10,2) 
    ,Inv_Tran_Nickels NUMERIC(10,2) 
    ,Inv_Tran_Dimes NUMERIC(10,2) 
    ,Inv_Tran_Quaters NUMERIC(10,2) 
    ,Inv_Tran_Halves NUMERIC(10,2) 
    ,Inv_Tran_Dollar NUMERIC(10,2) 
    ,Inv_Tran_Loose NUMERIC(10,2) 
    ,Inv_Tran_Ones  NUMERIC(10,2) 
    ,Inv_Tran_Twos  NUMERIC(10,2) 
    ,Inv_Tran_Fives NUMERIC(10,2) 
    ,Inv_Tran_Tens  NUMERIC(10,2) 
    ,Inv_Tran_Twenties NUMERIC(10,2) 
    ,Inv_Tran_Fifties NUMERIC(10,2) 
    ,Inv_Tran_Hundreds NUMERIC(10,2) 
    ,Inv_Adj_Pennies NUMERIC(10,2) 
    ,Inv_Adj_Nickels NUMERIC(10,2) 
    ,Inv_Adj_Dimes  NUMERIC(10,2) 
    ,Inv_Adj_Quaters NUMERIC(10,2) 
    ,Inv_Adj_Halves NUMERIC(10,2) 
    ,Inv_Adj_Dollar NUMERIC(10,2) 
    ,Inv_Adj_Loose  NUMERIC(10,2) 
    ,Inv_Adj_Ones  NUMERIC(10,2) 
    ,Inv_Adj_Twos  NUMERIC(10,2) 
    ,Inv_Adj_Fives  NUMERIC(10,2) 
    ,Inv_Adj_Tens  NUMERIC(10,2) 
    ,Inv_Adj_Twenties NUMERIC(10,2) 
    ,Inv_Adj_Fifties NUMERIC(10,2) 
    ,Inv_Adj_Hundreds NUMERIC(10,2) 
    ,Phy_Bal_Pennies NUMERIC(10,2) 
    ,Phy_Bal_Nickels NUMERIC(10,2) 
    ,Phy_Bal_Dimes  NUMERIC(10,2) 
    ,Phy_Bal_Quaters NUMERIC(10,2) 
    ,Phy_Bal_Halves NUMERIC(10,2) 
    ,Phy_Bal_Dollar NUMERIC(10,2) 
    ,Phy_Bal_Loose  NUMERIC(10,2) 
    ,Phy_Bal_Ones  NUMERIC(10,2) 
    ,Phy_Bal_Twos  NUMERIC(10,2) 
    ,Phy_Bal_Fives  NUMERIC(10,2) 
    ,Phy_Bal_Tens  NUMERIC(10,2) 
    ,Phy_Bal_Twenties NUMERIC(10,2) 
    ,Phy_Bal_Fifties NUMERIC(10,2) 
    ,Phy_Bal_Hundreds NUMERIC(10,2) 
); 
INSERT INTO TestData(Rep_Create_Date,InventoryID,Beg_Bal_Pennies,Beg_Bal_Nickels,Beg_Bal_Dimes,Beg_Bal_Quaters,Beg_Bal_Halves,Beg_Bal_Dollar,Beg_Bal_Loose,Beg_Bal_Ones,Beg_Bal_Twos,Beg_Bal_Fives,Beg_Bal_Tens,Beg_Bal_Twenties,Beg_Bal_Fifties,Beg_Bal_Hundreds,Inb_Bulk_Pennies,Inb_Bulk_Nickels,Inb_Bulk_Dimes,Inb_Bulk_Quaters,Inb_Bulk_Halves,Inb_Bulk_Dollar,Inb_Bulk_Loose,Inb_Bulk_Ones,Inb_Bulk_Twos,Inb_Bulk_Fives,Inb_Bulk_Tens,Inb_Bulk_Twenties,Inb_Bulk_Fifties,Inb_Bulk_Hundreds,Out_Bulk_Pennies,Out_Bulk_Nickels,Out_Bulk_Dimes,Out_Bulk_Quaters,Out_Bulk_Halves,Out_Bulk_Dollar,Out_Bulk_Loose,Out_Bulk_Ones,Out_Bulk_Twos,Out_Bulk_Fives,Out_Bulk_Tens,Out_Bulk_Twenties,Out_Bulk_Fifties,Out_Bulk_Hundreds,Out_Pack_Pennies,Out_Pack_Nickels,Out_Pack_Dimes,Out_Pack_Quaters,Out_Pack_Halves,Out_Pack_Dollar,Out_Pack_Loose,Out_Pack_Ones,Out_Pack_Twos,Out_Pack_Fives,Out_Pack_Tens,Out_Pack_Twenties,Out_Pack_Fifties,Out_Pack_Hundreds,Inv_Tran_Pennies,Inv_Tran_Nickels,Inv_Tran_Dimes,Inv_Tran_Quaters,Inv_Tran_Halves,Inv_Tran_Dollar,Inv_Tran_Loose,Inv_Tran_Ones,Inv_Tran_Twos,Inv_Tran_Fives,Inv_Tran_Tens,Inv_Tran_Twenties,Inv_Tran_Fifties,Inv_Tran_Hundreds,Inv_Adj_Pennies,Inv_Adj_Nickels,Inv_Adj_Dimes,Inv_Adj_Quaters,Inv_Adj_Halves,Inv_Adj_Dollar,Inv_Adj_Loose,Inv_Adj_Ones,Inv_Adj_Twos,Inv_Adj_Fives,Inv_Adj_Tens,Inv_Adj_Twenties,Inv_Adj_Fifties,Inv_Adj_Hundreds,Phy_Bal_Pennies,Phy_Bal_Nickels,Phy_Bal_Dimes,Phy_Bal_Quaters,Phy_Bal_Halves,Phy_Bal_Dollar,Phy_Bal_Loose,Phy_Bal_Ones,Phy_Bal_Twos,Phy_Bal_Fives,Phy_Bal_Tens,Phy_Bal_Twenties,Phy_Bal_Fifties,Phy_Bal_Hundreds) VALUES ('20160907',014,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,354060.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,41900.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,00.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,395960.00,0.00,0.00); 
INSERT INTO TestData(Rep_Create_Date,InventoryID,Beg_Bal_Pennies,Beg_Bal_Nickels,Beg_Bal_Dimes,Beg_Bal_Quaters,Beg_Bal_Halves,Beg_Bal_Dollar,Beg_Bal_Loose,Beg_Bal_Ones,Beg_Bal_Twos,Beg_Bal_Fives,Beg_Bal_Tens,Beg_Bal_Twenties,Beg_Bal_Fifties,Beg_Bal_Hundreds,Inb_Bulk_Pennies,Inb_Bulk_Nickels,Inb_Bulk_Dimes,Inb_Bulk_Quaters,Inb_Bulk_Halves,Inb_Bulk_Dollar,Inb_Bulk_Loose,Inb_Bulk_Ones,Inb_Bulk_Twos,Inb_Bulk_Fives,Inb_Bulk_Tens,Inb_Bulk_Twenties,Inb_Bulk_Fifties,Inb_Bulk_Hundreds,Out_Bulk_Pennies,Out_Bulk_Nickels,Out_Bulk_Dimes,Out_Bulk_Quaters,Out_Bulk_Halves,Out_Bulk_Dollar,Out_Bulk_Loose,Out_Bulk_Ones,Out_Bulk_Twos,Out_Bulk_Fives,Out_Bulk_Tens,Out_Bulk_Twenties,Out_Bulk_Fifties,Out_Bulk_Hundreds,Out_Pack_Pennies,Out_Pack_Nickels,Out_Pack_Dimes,Out_Pack_Quaters,Out_Pack_Halves,Out_Pack_Dollar,Out_Pack_Loose,Out_Pack_Ones,Out_Pack_Twos,Out_Pack_Fives,Out_Pack_Tens,Out_Pack_Twenties,Out_Pack_Fifties,Out_Pack_Hundreds,Inv_Tran_Pennies,Inv_Tran_Nickels,Inv_Tran_Dimes,Inv_Tran_Quaters,Inv_Tran_Halves,Inv_Tran_Dollar,Inv_Tran_Loose,Inv_Tran_Ones,Inv_Tran_Twos,Inv_Tran_Fives,Inv_Tran_Tens,Inv_Tran_Twenties,Inv_Tran_Fifties,Inv_Tran_Hundreds,Inv_Adj_Pennies,Inv_Adj_Nickels,Inv_Adj_Dimes,Inv_Adj_Quaters,Inv_Adj_Halves,Inv_Adj_Dollar,Inv_Adj_Loose,Inv_Adj_Ones,Inv_Adj_Twos,Inv_Adj_Fives,Inv_Adj_Tens,Inv_Adj_Twenties,Inv_Adj_Fifties,Inv_Adj_Hundreds,Phy_Bal_Pennies,Phy_Bal_Nickels,Phy_Bal_Dimes,Phy_Bal_Quaters,Phy_Bal_Halves,Phy_Bal_Dollar,Phy_Bal_Loose,Phy_Bal_Ones,Phy_Bal_Twos,Phy_Bal_Fives,Phy_Bal_Tens,Phy_Bal_Twenties,Phy_Bal_Fifties,Phy_Bal_Hundreds) VALUES ('20160907',018,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,919600.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,347060.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,00.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,304000.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,962660.00,0.00,0.00); 
INSERT INTO TestData(Rep_Create_Date,InventoryID,Beg_Bal_Pennies,Beg_Bal_Nickels,Beg_Bal_Dimes,Beg_Bal_Quaters,Beg_Bal_Halves,Beg_Bal_Dollar,Beg_Bal_Loose,Beg_Bal_Ones,Beg_Bal_Twos,Beg_Bal_Fives,Beg_Bal_Tens,Beg_Bal_Twenties,Beg_Bal_Fifties,Beg_Bal_Hundreds,Inb_Bulk_Pennies,Inb_Bulk_Nickels,Inb_Bulk_Dimes,Inb_Bulk_Quaters,Inb_Bulk_Halves,Inb_Bulk_Dollar,Inb_Bulk_Loose,Inb_Bulk_Ones,Inb_Bulk_Twos,Inb_Bulk_Fives,Inb_Bulk_Tens,Inb_Bulk_Twenties,Inb_Bulk_Fifties,Inb_Bulk_Hundreds,Out_Bulk_Pennies,Out_Bulk_Nickels,Out_Bulk_Dimes,Out_Bulk_Quaters,Out_Bulk_Halves,Out_Bulk_Dollar,Out_Bulk_Loose,Out_Bulk_Ones,Out_Bulk_Twos,Out_Bulk_Fives,Out_Bulk_Tens,Out_Bulk_Twenties,Out_Bulk_Fifties,Out_Bulk_Hundreds,Out_Pack_Pennies,Out_Pack_Nickels,Out_Pack_Dimes,Out_Pack_Quaters,Out_Pack_Halves,Out_Pack_Dollar,Out_Pack_Loose,Out_Pack_Ones,Out_Pack_Twos,Out_Pack_Fives,Out_Pack_Tens,Out_Pack_Twenties,Out_Pack_Fifties,Out_Pack_Hundreds,Inv_Tran_Pennies,Inv_Tran_Nickels,Inv_Tran_Dimes,Inv_Tran_Quaters,Inv_Tran_Halves,Inv_Tran_Dollar,Inv_Tran_Loose,Inv_Tran_Ones,Inv_Tran_Twos,Inv_Tran_Fives,Inv_Tran_Tens,Inv_Tran_Twenties,Inv_Tran_Fifties,Inv_Tran_Hundreds,Inv_Adj_Pennies,Inv_Adj_Nickels,Inv_Adj_Dimes,Inv_Adj_Quaters,Inv_Adj_Halves,Inv_Adj_Dollar,Inv_Adj_Loose,Inv_Adj_Ones,Inv_Adj_Twos,Inv_Adj_Fives,Inv_Adj_Tens,Inv_Adj_Twenties,Inv_Adj_Fifties,Inv_Adj_Hundreds,Phy_Bal_Pennies,Phy_Bal_Nickels,Phy_Bal_Dimes,Phy_Bal_Quaters,Phy_Bal_Halves,Phy_Bal_Dollar,Phy_Bal_Loose,Phy_Bal_Ones,Phy_Bal_Twos,Phy_Bal_Fives,Phy_Bal_Tens,Phy_Bal_Twenties,Phy_Bal_Fifties,Phy_Bal_Hundreds) VALUES ('20160907',050,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,970300.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,13860.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,00.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,130000.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,85416000,0.00,0.00); 
INSERT INTO TestData(Rep_Create_Date,InventoryID,Beg_Bal_Pennies,Beg_Bal_Nickels,Beg_Bal_Dimes,Beg_Bal_Quaters,Beg_Bal_Halves,Beg_Bal_Dollar,Beg_Bal_Loose,Beg_Bal_Ones,Beg_Bal_Twos,Beg_Bal_Fives,Beg_Bal_Tens,Beg_Bal_Twenties,Beg_Bal_Fifties,Beg_Bal_Hundreds,Inb_Bulk_Pennies,Inb_Bulk_Nickels,Inb_Bulk_Dimes,Inb_Bulk_Quaters,Inb_Bulk_Halves,Inb_Bulk_Dollar,Inb_Bulk_Loose,Inb_Bulk_Ones,Inb_Bulk_Twos,Inb_Bulk_Fives,Inb_Bulk_Tens,Inb_Bulk_Twenties,Inb_Bulk_Fifties,Inb_Bulk_Hundreds,Out_Bulk_Pennies,Out_Bulk_Nickels,Out_Bulk_Dimes,Out_Bulk_Quaters,Out_Bulk_Halves,Out_Bulk_Dollar,Out_Bulk_Loose,Out_Bulk_Ones,Out_Bulk_Twos,Out_Bulk_Fives,Out_Bulk_Tens,Out_Bulk_Twenties,Out_Bulk_Fifties,Out_Bulk_Hundreds,Out_Pack_Pennies,Out_Pack_Nickels,Out_Pack_Dimes,Out_Pack_Quaters,Out_Pack_Halves,Out_Pack_Dollar,Out_Pack_Loose,Out_Pack_Ones,Out_Pack_Twos,Out_Pack_Fives,Out_Pack_Tens,Out_Pack_Twenties,Out_Pack_Fifties,Out_Pack_Hundreds,Inv_Tran_Pennies,Inv_Tran_Nickels,Inv_Tran_Dimes,Inv_Tran_Quaters,Inv_Tran_Halves,Inv_Tran_Dollar,Inv_Tran_Loose,Inv_Tran_Ones,Inv_Tran_Twos,Inv_Tran_Fives,Inv_Tran_Tens,Inv_Tran_Twenties,Inv_Tran_Fifties,Inv_Tran_Hundreds,Inv_Adj_Pennies,Inv_Adj_Nickels,Inv_Adj_Dimes,Inv_Adj_Quaters,Inv_Adj_Halves,Inv_Adj_Dollar,Inv_Adj_Loose,Inv_Adj_Ones,Inv_Adj_Twos,Inv_Adj_Fives,Inv_Adj_Tens,Inv_Adj_Twenties,Inv_Adj_Fifties,Inv_Adj_Hundreds,Phy_Bal_Pennies,Phy_Bal_Nickels,Phy_Bal_Dimes,Phy_Bal_Quaters,Phy_Bal_Halves,Phy_Bal_Dollar,Phy_Bal_Loose,Phy_Bal_Ones,Phy_Bal_Twos,Phy_Bal_Fives,Phy_Bal_Tens,Phy_Bal_Twenties,Phy_Bal_Fifties,Phy_Bal_Hundreds) VALUES ('20160907',073,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1517360.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,494860.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,00.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,606000.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1406220.00,0.00,0.00); 


--This is the actual solution 
SELECT td.InventoryID 
    ,td.Rep_Create_Date 
    ,up.Denom 
    ,up.Beg_Bal 
    ,up.Phy_Bal 
    ,up.Cash_In 
    ,up.Cash_Out 
    ,up.Ship_In 
    ,up.Ship_Out 
    ,up.Inv_Adj 
FROM TestData td 
CROSS APPLY (VALUES (1 , Beg_Bal_Pennies , Inb_Bulk_Pennies  , Out_Pack_Pennies , Inv_Adj_Pennies , Phy_Bal_Pennies , Inv_Tran_Pennies , Out_Bulk_Pennies), 
        (5 , Beg_Bal_Nickels , Inb_Bulk_Nickels  , Out_Pack_Nickels , Inv_Adj_Nickels , Phy_Bal_Nickels , Inv_Tran_Nickels , Out_Bulk_Nickels), 
        (10 , Beg_Bal_Dimes  , Inb_Bulk_Dimes  , Out_Pack_Dimes  , Inv_Adj_Dimes , Phy_Bal_Dimes , Inv_Tran_Dimes , Out_Bulk_Dimes ), 
        (25 , Beg_Bal_Quaters , Inb_Bulk_Quaters  , Out_Pack_Quaters , Inv_Adj_Quaters , Phy_Bal_Quaters , Inv_Tran_Quaters , Out_Bulk_Quaters), 
        (50 , Beg_Bal_Halves , Inb_Bulk_Halves  , Out_Pack_Halves , Inv_Adj_Halves , Phy_Bal_Halves , Inv_Tran_Halves , Out_Bulk_Halves ), 
        (101 , Beg_Bal_Dollar , Inb_Bulk_Dollar  , Out_Pack_Dollar , Inv_Adj_Dollar , Phy_Bal_Dollar , Inv_Tran_Dollar , Out_Bulk_Dollar ), 
        (98 , Beg_Bal_Loose  , Inb_Bulk_Loose  , Out_Pack_Loose  , Inv_Adj_Loose , Phy_Bal_Loose , Inv_Tran_Loose , Out_Bulk_Loose ), 
        (100 , Beg_Bal_Ones  , Inb_Bulk_Ones  , Out_Pack_Ones  , Inv_Adj_Ones  , Phy_Bal_Ones , Inv_Tran_Ones , Out_Bulk_Ones ), 
        (200 , Beg_Bal_Twos  , Inb_Bulk_Twos  , Out_Pack_Twos  , Inv_Adj_Twos  , Phy_Bal_Twos , Inv_Tran_Twos , Out_Bulk_Twos ), 
        (500 , Beg_Bal_Fives  , Inb_Bulk_Fives  , Out_Pack_Fives  , Inv_Adj_Fives , Phy_Bal_Fives , Inv_Tran_Fives , Out_Bulk_Fives ), 
        (1000 , Beg_Bal_Tens  , Inb_Bulk_Tens  , Out_Pack_Tens  , Inv_Adj_Tens  , Phy_Bal_Tens , Inv_Tran_Tens , Out_Bulk_Tens ), 
        (2000 , Beg_Bal_Twenties , Inb_Bulk_Twenties , Out_Pack_Twenties , Inv_Adj_Twenties , Phy_Bal_Twenties, Inv_Tran_Twenties, Out_Bulk_Twenties), 
        (5000 , Beg_Bal_Fifties , Inb_Bulk_Fifties  , Out_Pack_Fifties , Inv_Adj_Fifties , Phy_Bal_Fifties , Inv_Tran_Fifties , Out_Bulk_Fifties), 
        (10000, Beg_Bal_Hundreds , Inb_Bulk_Hundreds , Out_Pack_Hundreds , Inv_Adj_Hundreds , Phy_Bal_Hundreds, Inv_Tran_Hundreds, Out_Bulk_Hundreds)) up(Denom, Beg_Bal, Phy_Bal, Cash_In, Cash_Out, Ship_In, Ship_Out, Inv_Adj) 
+0

真棒回答@Luis,谢谢!这就是我正在寻找的。顺便说一句,欢迎来到StackOverFlow! – ChikuMiku