gpt4 book ai didi

jquery - 如何使用 select 将两行合二为一?

转载 作者:行者123 更新时间:2023-11-29 06:34:45 24 4
gpt4 key购买 nike

我有选择代码:

select
produto_licitacoes.descricao,
case when produto_unidades.unidade_id = 15 then produto_unidades.saldo else 0 end saldo,
case when produto_unidades.unidade_id = 15 then produto_unidades.qtd - produto_unidades.saldo else 0 end demanda,
case when produto_unidades.unidade_id = 3 then produto_unidades.saldo else 0 end caf,
produto_notas.lote,
produto_notas.dataValidade,
'S' as tipo
from
produto_unidades
join produto_notas on produto_notas.id = produto_unidades.produtoNota_id
join produto_licitacoes on produto_licitacoes.id = produto_notas.produtoLicitacoes_id
join classe_terapeuticas on classe_terapeuticas.id = produto_licitacoes.classeTerapeutica_id
where
(produto_unidades.unidade_id = 3 or produto_unidades.unidade_id = 15)
and produto_licitacoes.tipoProdutos_id = 1
and produto_unidades.saldo > 0

这将返回结果:

'CIMETIDINA 200MG, COMPRIMIDO', '0', '0', '590', '17F35I', '2019-05-30', 'S'
'CIMETIDINA 200MG, COMPRIMIDO', '400', '0', '0', '17F051', '2019-05-30', 'S'

第一行是 produto_unidades.unidade_id = 3,第二行是 produto_unidades.unidade_id = 15

如何连接两条线?

'CIMETIDINA 200MG, COMPRIMIDO', '400', '0', '590', '17F35I', '2019-05-30', 'S'

最佳答案

一种解决方案是将查询转换为聚合查询,并使用带有 MAX 的条件聚合来计算变量字段。这需要添加一个 GROUP BY 子句来列出所有非聚合字段:

select
produto_licitacoes.descricao,
max(case when produto_unidades.unidade_id = 15 then produto_unidades.saldo else 0 end) saldo,
max(case when produto_unidades.unidade_id = 15 then produto_unidades.qtd - produto_unidades.saldo else 0 end) demanda,
max(case when produto_unidades.unidade_id = 3 then produto_unidades.saldo else 0 end caf),
produto_notas.lote,
produto_notas.dataValidade,
'S' as tipo
from
produto_unidades
join produto_notas on produto_notas.id = produto_unidades.produtoNota_id
join produto_licitacoes on produto_licitacoes.id = produto_notas.produtoLicitacoes_id and and produto_licitacoes.tipoProdutos_id = 1
join classe_terapeuticas on classe_terapeuticas.id = produto_licitacoes.classeTerapeutica_id
where
produto_unidades.unidade_id in (3, 15)
and produto_unidades.saldo > 0
group by
produto_licitacoes.descricao,
produto_notas.lote,
produto_notas.dataValidade

对原始查询的其他更改:

  • unidade_id 上的 OR 条件可以表示为 IN 条件
  • 将一些连接条件从 WHERE 子句移至相关 JOINON 子句

关于jquery - 如何使用 select 将两行合二为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com