如何在SQL中循环?

时间:2016-01-21 16:26:51

标签: sql loops

我从未试图在SQL中循环,我在PHP中做过,但主要是通过复制示例(虽然我理解这个概念)。

我的问题是......

我有一份报告,根据三个字段的内容生成标题:分部,部门和分部。我通过做......手动创建标题。

sum(case when Division = 'Property' and Department = 'High Value' and Branch = 'London' then Net end) as 'Prop|HighValue|Lon',

我必须为三个字段的每个组合执行此操作,这是一个:本身耗时且b:意味着如果添加了一个类别,我需要在我的视图中添加一行代码。< / p>

是否有办法循环遍历字段以动态创建部门中第一个记录中的第一个记录中的每个分支等等?

plus - 有没有办法排除特定的组合(假设现实中不存在每种组合)?

其他信息......

&#39;司&#39;是一个包含&#39;属性&#39;,&#39;诉讼&#39;,&#39;私人客户&#39; &#39;系&#39;是一个包含&#39; High Value&#39;&#39; Low Value&#39; &#39;科&#39;是一个包含&#39; London&#39;&#39; Manchester&#39;,&#39; Peterborough&#39;

的专栏

这些是分组列,显示汇总的结算信息(在&#39; Net&#39;列&#39;

这适用于将类别向下分组,我想要的是三个字段的每个组合的列(例如,上面的case语句创建了一个列,用于&#39;属性|高价值|伦敦&#39; - I& #39;我想知道我是否可以通过循环动态创建它?

1 个答案:

答案 0 :(得分:0)

您要问的是交叉表,数据透视表或xtab。它是后端依赖你如何做到这一点。你目前正在尝试做的是最古老的风格,这将是繁琐的(穷人的支点)。 ie:对于postgreSQL,你可以简单地使用tableFunc:

tablefunc