我每天都有一个交易表(每天可以有1对多的交易)。现在我想以这样一种方式对其进行转换:每个客户使用一系列0获得单个记录(如果当天的事务表中没有记录)和1(如果有记录的话)那天)。
如何在SQL(ANSI SQL或Postgres)中实现这一目标?
例如:
转换此交易表:
Cust Date
123 2/3/2015
123 4/3/2015
456 1/3/2015
进入下表:
Cust 1/3/2015 2/3/2015 3/3/2015 4/3/2015
123 0 1 0 1
456 1 0 0 0
鉴于建议使用CROSSTAB我已经提出了这个SQL:
SELECT *
FROM CROSSTAB12 (
'SELECT CALLING_ISDN AS A_PARTY, DATE(CALL_STA_TIME), 1 AS VALUE
FROM CDRVMS_ADMIN.AW_CDRICC_SAMPLE
ORDER BY 1,2');
产生以下错误消息(我在Netezza机器上工作):
ERROR(42000)发现"("(在char 26)期待关键字
我使用此文档:http://www.postgresql.org/docs/current/interactive/tablefunc.html