【问题标题】:Postgres DISTINCT to single rowPostgres DISTINCT 到单行
【发布时间】:2018-12-12 14:31:53
【问题描述】:

如何区分单行

这是我的代码:

选择 wagon.name w_name, '' 作为 su_name, '' 作为 m_name, '' 作为 sk_name, '' 作为 p_name, '' 作为 b_name, '' 作为o_name, 总 w_total, 0 作为 su_total, 0 作为 m_total, 0 作为 sk_total, 0 作为 p_total, 0 作为 b_total, 0 作为 o_total 从马车 LEFT JOIN wagon ON wagoning.wagon_id = wagon.id 联合所有 选择 '' w_name, 名称 su_name, '' m_name, '' sk_name, '' p_name, '' b_name, '' o_name, 0 w_total, 总计 su_total, 0 m_total, 0 sk_total, 0 p_total, 0 b_total, 0 o_total 从干燥 LEFT JOIN 干燥器 ON dry.drier_id = dryer.id 联合所有 选择 '' w_name, '' 苏名, 数量::varchar 作为 m_name, '' sk_name, '' p_name, '' b_name, '' o_name, 0 w_total, 0 总计, 总计 m_total, 0 sk_total, 0 p_total, 0 b_total, 0 o_total 从 装袋 联合所有 选择 '' w_name, '' 苏名, '' m_name, 数量::varchar 作为 sk_name, '' p_name, '' b_name, '' o_name, 0 w_total, 0 总计, 0 m_total, 总sk_total, 0 p_total, 0 b_total, 0 o_total 从 存储 联合所有 选择 '' w_name, '' 苏名, '' m_name, '' sk_name, 数量::varchar 作为 p_name, '' b_name, '' o_name, 0 w_total, 0 总计, 0 m_total, 0 sk_total, 总 p_total, 0 b_total, 0 o_total 从 加工 联合所有 选择 '' w_name, '' 苏名, '' m_name, '' sk_name, '' p_name, 数量::varchar 作为 b_name, '' o_name, 0 w_total, 0 总计, 0 m_total, 0 sk_total, 0 p_total, 数量 * 净 b_total, 0 o_total 从 拳击 联合所有 选择 '' w_name, '' 苏名, '' m_name, '' sk_name, '' p_name, '' b_name, '' o_name, 0 w_total, 0 总计, 0 m_total, 0 sk_total, 0 p_total, 0 b_total, 部分 o_total 从 拳击

请查看下面的屏幕截图:顶部结果(红色上方)它现在是如何工作的。我想要的是在单行中的红线下方

screenshot

【问题讨论】:

  • 请不要添加图片。请将您的输出和预期输出作为文本添加到问题中。
  • 请附上您的数据库架构
  • StackOverflow 感谢您的贡献。

标签: sql postgresql


【解决方案1】:

我想你希望MAX 超过所有UNION ALL 的查询结果

select MAX(w_name) as w_name,
       MAX(su_name)as su_name,
      -- ..  other columns

FROM
(
SELECT 
wagon.name w_name,
'' as su_name,
'' as m_name,
'' as sk_name,
'' as p_name,
'' as b_name,
'' as o_name,
total w_total,
0 as su_total,
0 as m_total,
0 as sk_total,
0 as p_total,
0 as b_total,
0 as o_total

FROM wagoning 
LEFT JOIN wagon ON wagoning.wagon_id = wagon.id 

UNION ALL

SELECT 
..

【讨论】:

  • 不能使用最大值。它应该是 Ireport 中的中继器
  • @MaratRaimberdievich:但是,我没有在您的查询中看到,每个查询始终只有一个非空列
  • 我试过了,但它在中继器上不起作用。它总是只显示一行。我需要将这些表重复为一行,并重复其他记录。那么客户想要那些糟糕的报告:(
  • 那么 jasper iReport 会执行重复部分。我只是给一行它会重复其他记录。
猜你喜欢
  • 2018-11-23
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
相关资源
最近更新 更多