sql - 如何使视图从 2 个表显示为 1 个表,以行为列
问题描述
我有 2 张桌子:
CREATE TABLE public.objects
(
id bigint NOT NULL DEFAULT nextval('objects_id_seq'::regclass),
value text,
CONSTRAINT objects_pkey PRIMARY KEY (id)
);
CREATE TABLE public.relation
(
id1 bigint,
id2 bigint,
multiplier integer
);
objects 表存储有关任何对象的数据,relation 表通过对象的 id 存储对象之间的关系,multiplier 是有关关系的数据。
请帮助请求将此显示为简单的表格,其中对象为列和行,乘数为关系值(列和行)
像这样
Comps 和 Products 作为对象,值作为乘数。
解决方案
@Fahad Anjumthanx....
SELECT * FROM crosstab('select o.value, o1.value, r.multiplier::text FROM objects as o, objects as o1, relation as r
where
o.id=r.id1 and
o1.id = r.id2')
AS ct(com text, P1 text, P2 text, P3 text);
这是工作...
推荐阅读
- excel - Sharepoint 上的 Excel 文件
- javascript - 如何使用 three.js 中的回调异步加载多个纹理?
- arrays - R - 如何在时间序列图像中找到掩码内的图像元素?
- javascript - 如果 json 有斜杠,JSON.parse 会抛出错误
- asp.net-mvc - 在 Asp.Net MVC 中的图像中绘制多行文本
- java - 使用 Checkstyle/PMD/Findbugs 检查变量值
- java - Wildfly10 EAR 部署在 Eclipse 中失败,但在standalone.bat 中工作
- android - Android 上的主启动器
- wso2 - 在 WSO2ei 中找不到适合 jdbc:postgresql 的驱动程序
- c# - Windows PE WinForm 应用程序未执行