【发布时间】:2020-11-16 10:55:05
【问题描述】:
我有这些桌子:
tblproduk :
| skuid | namabarang |
|--------|-----------------|
| 123456 | INDOMIE GORENG |
| 234567 | COKLAT BENGBENG |
| 345678 | BISKUIT |
tblproduk_satuan:
| id | skuid | kodebarang | satuan | konversi | price |
|----|--------|------------|--------|----------|--------|
| 1 | 123456 | ABC1 | PCS | 1 | 6000 |
| 2 | 123456 | ABC2 | DUS | 20 | 100000 |
| 3 | 234567 | BCD | PCS | 1 | 3000 |
| 4 | 345678 | CDE1 | BKS | 1 | 4500 |
| 5 | 345678 | CDE2 | LSN | 12 | 50000 |
| 6 | 345678 | CDE3 | DUS | 48 | 190000 |
tblproduk_stock:
| id | skuid | awal | masuk | keluar |
|----|--------|------|-------|--------|
| 1 | 123456 | 10 | 50 | 30 |
| 2 | 234567 | 0 | 100 | 20 |
| 3 | 345678 | 20 | 400 | 21 |
这是我桌子的sqlfiddle。 从 tblproduct_satuan 将多行转换为字符串的最有效方法是什么,进行计算并显示如下:
| skuid | namabarang | stock | satuan |Remarks | Amount
|--------|-----------------|-------|--------|-------------------------------
| 123456 | INDOMIE GORENG | 30 | PCS | 1 DUS 10 PCS | 160.000
| 234567 | COKLAT BENGBENG | 80 | PCS | 80 PCS | 240.000
| 345678 | BISKUIT | 399 | BKS | 8 DUS 1 LSN 3 BKS | 1.583.500
希望得到专家的帮助。
谢谢
【问题讨论】:
-
(1) 请解释逻辑,尤其是
remarks和amount列;这一点都不明显。 (2) 如果您将对象名称翻译成英文,您的问题会更容易理解。 -
与您的问题完全无关,但您可能想阅读以下内容:Is adding the ‘tbl’ prefix to table names really a problem?
-
并且问题中的表名与演示中的名称不符。
-
抱歉使用了非标准的英文对象名。 “备注”相当于库存,从最大到最小单位换算。一只 skuid 可能有 1 个或多个单位。金额是计算价格*备注。表中399个等于8盒1打3个
-
感谢大家帮助我。这是标准英文名称的更新 sql fiddle。 sqlfiddle.com/#!17/0cf27/1
标签: sql postgresql aggregate-functions