SQL 查询语句。 寻求帮助(转列)。

发布于 科技 2024-06-10
11个回答
  1. 匿名用户2024-01-29

    创建表 Sales 表 (Customer varchar(50), Commodity varchar(50), Quantity int)。

    插入到销售表单中 选择'客户 1','商品 1',2

    插入到销售表单中 选择'客户 1','商品 2',1

    插入到销售表单中 选择'客户 2','商品 1',5

    插入到销售表单中 选择'客户 2','商品 2',3

    插入到销售表单中 选择'客户 2','商品 3',1

    插入到销售表单中 选择'客户 3','商品 1',1

    销售表中的数据如下:

    客户商品数量。

    客户 1 产品 1 2

    客户 1 产品 2 1

    客户 2 产品 1 5

    客户 2 产品 2 3

    客户 2 产品 3 1

    客户 3 产品 1 1

    再次执行。 选择项目,总和(案例客户何时'客户 1'然后数量 else 0 结束)作为客户 1,sum(案例客户当'客户 2'则数量 else 0 结束)作为客户 2,sum(案例客户当'客户 3'则数量 else 0 结束)作为客户 3

    从销售表按项目分组。

    结果为:商品客户 1 客户 2 客户 3

    商品 1 2 5 1

    商品 2 1 3 0

    商品 3 0 1 0

  2. 匿名用户2024-01-28

    表的结构不明确,无法编写语句。

  3. 匿名用户2024-01-27

    选择年、月、部门代码、总和(费用项目='人事费用'和费用分类='径直'然后金额 else 0 结束) 人员直接成本,总和(费用项目 = 的情况'人事费用'和费用分类='间接'然后金额 else 0 end) 人员成本间接费用,sum(费用项目 = 的情况'水电费'和费用分类='径直'然后金额 else 0 结束)效用直接成本,总和(费用项='水电费'和费用分类='间接'然后金额 else 0 end) 效用开销, sum(当费用项目 = 时的情况'其他费用'和费用分类='径直'然后金额 else 0 结束) 其他直接成本,总和(费用项目 = 时的情况'其他费用'和费用分类='间接'则金额 else 0 结束)其他间接费用。

    从表中。

    按年、月、部门代码分组。

  4. 匿名用户2024-01-26

    看看效果是不是这样的:

    测试用例:从选项卡中选择 *

    SQL语句如下:

    select [type],stuff(

    select ','+name from tab t2 where for xml path(''按类型筛选转换为文本,并用 (逗号, ) 分隔。

    1,1,'')info from tab t1 group by [type] order by t1.[type],信息分组和排序。

    效果图如下:

    如果发现没有,则所有相同的类型分组在名称列中用逗号 [,] 分隔。

    关键段落**:你把它拿到数据库并执行它,将表格行形式转换为XML格式字符串,当你遇到标签和字符被添加时,标签就会被删除!

    select ','+name from tab t2 for xml path('')

    希望对你有所帮助!

  5. 匿名用户2024-01-25

    假设该表有两列,A 和 B,如下所示。

    select a,listagg(b, ',') within group(order by b) b from table group by a

    在上面的 SQL 文本中,b 列可以水平输出,用逗号分隔,输出顺序按 b 值的升序排列。

  6. 匿名用户2024-01-24

    在 oracle11g 中,这可以使用透视语法来实现。

    在 11g 之前的版本中,可以使用存储过程的方法。

  7. 匿名用户2024-01-23

    我不知道具体效果,我无法转换。

  8. 匿名用户2024-01-22

    是的,我认为 id 列应该是唯一的。 根据 productid 分组时,取 max(id),然后将该 ID 关联起来,就可以查询其他列的数据了。

  9. 匿名用户2024-01-21

    从你的角度来看,这是不一致的。

    我想根据 productid 对多列数据进行分组,但实际上后面列的内容是不一样的,所以肯定会有多个数据出来。

    如果要查询单个数据,但需要多个列,则没有人可以确定要查询哪一个。

    如果是统计字段中的多列数据,则可以,并且在分组时可以选择统计数据字段。

  10. 匿名用户2024-01-20

    with tablea as(

    select 'a' a,'b' b,'c' cunion all

    select 'a','b','c'

    union all

    select 'a','b','d'

    union all

    select 'a','c','d'

    union all

    select 'a','b','c',tableb as(

    select a,b,c from tablea group by a,b,c

    从表b中选择*,先将表A与分组依据关联,再将表B与表C关联。

  11. 匿名用户2024-01-19

    您可以了解 decode() 函数,它可以达到转置的目的。

    但是,仍然建议您使用 excel 来解决它。

相关回答
23个回答2024-06-10

刚看到你的定向帮助,sqlserver中还有一个函数可以查询已知的日期是星期几。 >>>More

10个回答2024-06-10

以下是 MS SQL 的日期和小时条件。

select * >>>More

4个回答2024-06-10

在这种情况下,您可以以不同的方式思考。 >>>More

4个回答2024-06-10

这个语句可以查到00005和00007,至于你说的,如果没有空缺,就会显示00007,这个语句无法执行,需要不止一个语句。 >>>More

21个回答2024-06-10

上面的语句是内部联接,两个表相互引用。 >>>More