没有第四列
时间: 2023-07-24 20:21:44 浏览: 64
非常抱歉,我再次理解有误。根据您的说明,这个表中只有三列数据,分别是物料编码、上级物料编码和物料单价。那么,在运行上述 SQL 查询时,需要知道每个物料的数量,才能计算出每个物料的总成本。
如果您已经知道了每个物料的数量,可以将数量作为一个常量加入到 SQL 查询语句中。例如,如果 A801 这个最终产品的数量为 1,那么修改后的 SQL 查询语句如下所示:
```
WITH cte(bmb01, bmb03, cost) AS (
SELECT bmb01, bmb03, ima53
FROM DS_REPORT.ABMR801110755ERP
WHERE bmb01 = 'A801'
UNION ALL
SELECT b.bmb01, b.bmb03, c.cost + b.ima53*n
FROM DS_REPORT.ABMR801110755ERP b
JOIN cte c ON b.bmb01 = c.bmb03
CROSS JOIN (SELECT 1 as n) t
)
SELECT bmb01,bmb03, SUM(cost) AS total_cost
FROM cte
GROUP BY bmb01,bmb03;
```
其中,常量 n 表示每个物料的数量,这里设置为 1。如果需要计算其他数量的成本,只需要将 n 修改为相应的值即可。
希望这次回答更加准确,对您有所帮助。
相关问题
awk每隔4行取第4列数据
可以使用awk的NR和FNR变量来实现每隔4行取第4列数据的操作,具体命令如下:
```
awk 'BEGIN{FS=OFS="\t"} (NR%4==0){print $4}' filename
```
其中,`NR`表示当前处理的行号,而`FNR`表示当前文件中的行号。由于没有使用`getline`等类似命令,所以这两个变量的值相同。`FS`和`OFS`分别表示输入和输出的分隔符,这里指定为tab键。`(NR%4==0)`表示每隔4行进行操作,`print $4`表示输出第4列的数据。`filename`为要处理的文件名。
python如何查询没有索引的列
对于没有索引的列,可以使用iloc和loc方法进行查询。
iloc方法是通过行号和列号来进行访问,可以使用整数或者整数列表来指定要访问的行号或者列号。例如,访问第一列数据可以使用以下代码:
```
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
column1 = df.iloc[:, 0]
print(column1)
```
输出结果为:
```
0 1
1 2
2 3
Name: A, dtype: int64
```
loc方法是通过行标签和列标签来进行访问,可以使用标签或者标签列表来指定要访问的行标签或者列标签。例如,访问第一列数据可以使用以下代码:
```
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
column1 = df.loc[:, 'A']
print(column1)
```
输出结果为:
```
0 1
1 2
2 3
Name: A, dtype: int64
```
其中,":"表示选择所有行。如果要选择多列数据,可以使用列标签列表来指定要访问的列,例如:
```
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
columns = df.loc[:, ['A', 'C']]
print(columns)
```
输出结果为:
```
A C
0 1 7
1 2 8
2 3 9
```