我有三个包含tbl_goods、tbl_units和tbl_sat的表,如下所示:
tbl_goods,包含已销售的商品
+--------+-------+-------+-------+
| goods |code |qty |unit |
+--------+-------+-------+-------+
| cigar | G001 | 1 | pack |
| cigar | G001 | 2 | pcs |
| cigar | G001 | 2 | box |
| bread | G002 | 2 | pcs |
| bread | G002 | 2 | pack |
| soap | G003 | 1 | pcs |
+--------+-------+-------+-------+
和tbl_units,如下所示:
+--------+-------------+-------+
| code |ucode |qty |
+--------+-------------+-------+
| KG001 | U001 | 10 |
| KG001 | U002 | 20 |
| KG002 | U001 | 15 |
+--------+-------------+-------+
我在tbl_units中代码前面添加了字母“K”,以区别并确保不会与tbl_goods中的代码冲突。
和tbl_sat,如下所示:
+--------+-------------+
| ucode | unit |
+--------+-------------+
| U001 | pack |
+--------+-------------+
| U002 | box |
+--------+-------------+
| U003 | crate | etc
因此只有雪茄和面包会有转换,因为表单位有代码
我需要显示的结果如下:
+--------+-------+-------+-------+--------+
| goods |code |qty |unit | total |
+--------+-------+-------+-------+--------+
| cigar | G001 | 1 | pack | 10 |
| cigar | G001 | 2 | pcs | 2 |
| cigar | G001 | 2 | box | 40 |
| bread | G002 | 2 | pcs | 2 |
| bread | G002 | 2 | pack | 30 |
| soap | G003 | 1 | pcs | 1 |
+--------+-------+-------+-------+--------+
实际上这个问题已经被问过了,可能类似,但是在表结构和编码上的变化,所以我想我开始另一个新的问题。希望这能解决我的问题
非常感谢您的光临
此致
1条答案
按热度按时间kgsdhlau1#
我尝试了几种方法,我不得不使用“硬方法”。首先我找到的数量,它不是最小的形式('件')通过使用查询如下:
在我得到了没有最小形式的商品清单后,我又进行了一次查询,得到了具有最小形式的清单
之后,我将这两个查询结合起来,希望速度对于大型记录来说足够好
此致