SQL 划分一个字段 If
SQL Divide a field If
我正在尝试构建一个查询以从一篇文章中获取 X 组件的最小库存。想象一台电脑,它有内存、主板等。
我可以轻松获得最小组件数量,但是,我们通常在要构建的计算机中放置 2 个 RAM,因此,我希望查询获得 RAMs/2.
的 StockValue
这是我的查询:
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,我想将component/article which 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
. . .
我正在尝试构建一个查询以从一篇文章中获取 X 组件的最小库存。想象一台电脑,它有内存、主板等。 我可以轻松获得最小组件数量,但是,我们通常在要构建的计算机中放置 2 个 RAM,因此,我希望查询获得 RAMs/2.
的 StockValue这是我的查询:
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,我想将component/article which 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
. . .