我有两张桌子,一张有不同商店的送货数量,视星期几而定。像这样:
stores
store-n | mon | tue
store 1 | 0 | 2
store 2 | 1 | 1
其中一个显示了一个产品包含多少产品。像这样:
quantum
store-n | p1 | p2 |
store 1 | 20 | 15 |
store 2 | 5 | 8 |
我需要说明每个商店在特定日期必须交付多少单品 像这样:
Count of p1 on monday:
store-n | p1*mon |
store 1 | 0 |
store 2 | 5 |
Count of p2 on tuesday:
store-n | p2*tue |
store 1 | 30 |
store 2 | 8 |
因此,产品数量乘以每家商店的送货数量。
我试过这个问题:
SELECT stores.store-n, (quantum.p1 * stores.mon) FROM quantum, stores
但似乎它将另一行中的每一行的第一行乘以另一行,然后对下一行相同,依此类推。这样做的正确方法是什么?
最后我还需要结果列的总和。
答案 0 :(得分:3)
您的查询缺少连接条件,这会导致两个表之间的交叉连接。我们可以尝试更正您的原始查询,但最好使用显式连接编写它:
SELECT
s.`store-n`,
q.p1 * s.mon AS p1_cnt,
q.p2 * s.tue AS p2_cnt
FROM stores s
INNER JOIN quantum q
ON s.`store-n` = q.`store-n`;
答案 1 :(得分:0)
SELECT (store.mon * quantum.p1) AS 'p1*mon', (store.tue * quantum.p2) AS 'p2*tue'
FROM `store`
LEFT JOIN quantum
ON store.store_n = quantum.store_n