SAP HANA 查询 - 基于字段的位置

问题描述 投票:0回答:1

我有一个查询,它从库存仓位置和用户定义的字段中提取数据,该字段显示每个仓库的最大托盘数量。

我的数据:

   Bin Code     Max Pallets     Total Pallets    Available
   000-AA-001   34              30               4
   000-BB-001   24              18               6
   000-CC-001   12              14               -2

我的询问:

SELECT T0."BinCode", T0."U_TRX_MaxPallets" AS "Max Pallets",
SUM(NDIV0(T1."OnHandQty", (T2."U_TRX_Ti" * T2."U_TRX_Hi"))) AS "Total Pallets", T0."U_TRX_MaxPallets" - SUM(NDIV0(T1."OnHandQty", (T2."U_TRX_Ti" * T2."U_TRX_Hi"))) AS "Available"
FROM OBIN T0  INNER JOIN OIBQ T1 ON T0."AbsEntry" = T1."BinAbs"  
INNER JOIN OITM T2 ON T1."ItemCode" = T2."ItemCode"
WHERE T1."OnHandQty"  <> 0 AND  T1."WhsCode" ='000' AND SUBSTRING(T0."BinCode",5,1) <> 'R' AND SUBSTRING(T0."BinCode",5,1) <> 'P' AND SUBSTRING(T0."BinCode",1,11) <> '000-OFFICE' AND SUBSTRING(T0."BinCode",1,8) <> '000-OTBD' AND "Available" > 0
GROUP BY T0."BinCode", T0."U_TRX_MaxPallets"
ORDER BY T0."BinCode"

最终结果是我需要所有可用> 0的bin代码。

我添加了一个名为 Total 的列,并删除了对 Bin 的所有引用。

当我从 group by 子句中删除 T0."U_TRX_MaxPallets" 时,它给我一条错误消息。

SELECT 'Total' AS "Total", T0."U_TRX_MaxPallets" AS "Max Pallets",
SUM(NDIV0(T1."OnHandQty", (T2."U_TRX_Ti" * T2."U_TRX_Hi"))) AS "Total Pallets", T0."U_TRX_MaxPallets" - SUM(NDIV0(T1."OnHandQty", (T2."U_TRX_Ti" * T2."U_TRX_Hi"))) AS "Available"
FROM OBIN T0  INNER JOIN OIBQ T1 ON T0."AbsEntry" = T1."BinAbs"  
INNER JOIN OITM T2 ON T1."ItemCode" = T2."ItemCode"
WHERE T1."OnHandQty"  <> 0 AND  T1."WhsCode" ='000' AND SUBSTRING(T0."BinCode",5,1) <> 'R' AND SUBSTRING(T0."BinCode",5,1) <> 'P' AND SUBSTRING(T0."BinCode",1,11) <> '000-OFFICE' AND SUBSTRING(T0."BinCode",1,8) <> '000-OTBD'
GROUP BY 'Total', T0."U_TRX_MaxPallets"
sql hana
1个回答
0
投票

如果您只想过滤

available > 0
,可以使用嵌套 select 语句或
HAVING
子句来实现。

选项1:

SELECT *
FROM
( 
    <INSERT YOUR QUERY HERE>
)
WHERE "Available" > 0

选项2:

<INSERT YOUR QUERY HERE>
HAVING T0."U_TRX_MaxPallets" - SUM(NDIV0(T1."OnHandQty", (T2."U_TRX_Ti" * T2."U_TRX_Hi"))) > 0
© www.soinside.com 2019 - 2024. All rights reserved.