sql - SQL 分割一个字段 If
问题描述
我正在尝试构建一个查询以从文章中获取 X 组件的最低库存。想象一台计算机,它有内存、主板等。我可以很容易地得到最小组件数量,但是,我们通常在我们要构建的计算机中放置 2 个 RAM,所以,我希望查询得到 RAM 的 StockValue /2。
这是我的查询:
SELECT A1.Artigo AS Artigo,
A1.Descricao AS Descricao,
MIN(AA.StkActual) AS Stock,
0 AS QuantidadeEmEncomendasPendentes,
'Componente Stock' AS Id
FROM Artigo A1
INNER JOIN ComponentesArtigos CA ON CA.ArtigoComposto = A1.Artigo
INNER JOIN Artigo A2 ON A2.Artigo = CA.Componente
AND (A2.Familia = 98
OR A2.Familia = 45
OR A2.Familia = 39
OR A2.Familia = 37
OR A2.Familia = 38)
INNER JOIN ArtigoArmazem AA ON AA.Artigo = A2.Artigo
AND AA.Armazem = 'A7'
GROUP BY A1.Artigo,
A1.Descricao
HAVING A1.Artigo = '0180005132';
您需要知道的事情: min(AA.StkActual) 是我正在谈论的 StockValue。RAM 由家族定义 (A2.Familia = 39)
我不想将查询结果除以 2,我想将 family = 39 的组件/文章的库存除以 2
解决方案
如果我理解正确,您需要一个有条件的最小值:
SELECT A1.Artigo AS Artigo,
A1.Descricao AS Descricao,
MIN(CASE WHEN A2.familia = 38 THEN AA.StkActual / 2 ELSE AA.StkActual END) AS Stock,
0 AS QuantidadeEmEncomendasPendentes,
'Componente Stock' AS Id
. . .
推荐阅读
- vb.net - 检查外部程序是否是活动窗口
- javascript - 如何在 odoo 11.0 中添加新的 javascript 文件并在加载 web/登录时调用脚本?
- cuda - 在 n×1 向量中的 m×n 矩阵的 Cuda 乘法
- command - 使用 adobe illustrator 命令行或批量转换将 .ai 转换为 .svg 文件
- javascript - 使用 AngularJS 1.5 转换组件内的所有子元素
- sql - 重复值插入,当使用可序列化的隔离级别时
- android - HttpConnection 错误 500
- python - 数组 fileld postgres 中最常见的词
- java - 运行时 exec 不显示结果
- javascript - 如何从节点js中的doc文件第一页生成拇指