所以我有点想起了我上一篇有关如何更新的帖子的答案-填充数据库:“ How to update-populate empty fields in A table with values from a B with a random sequence”
现在我面临的问题是追加查询使数据彼此相乘,而没有将它们组合在一起,从而得到我想要的结果
更具体地说,我们有:
TABLEA
ID | POLICE RANK | FULL NAME |
____________________________________
288066 | Const. | Chris Meli |
273111 | Serg. | John Do |
231444 | Const. | Bill Park |
298432 | Const. | Joe Park |
_____________________________________
包含警务人员的信息,并连接到 TableC 中的 ID 字段,因此,即使从TableA上的连接,您也可以检查每名警官的职责分配给前几天。
TABLEB
DUTY | Number of Police needed |
| for each service |
____________________________________
Patrol | 1 |
Guards | 1 |
Courts | 2 |
____________________________________
为简单起见,我将数字1和2放在数字中。通常, TableA 将容纳超过250人,并且在 TableB 上将有许多 Duty ,并且需要的警察数量将取决于日期和许多其他因素。
TABLEC
ID | DUTY | DATE |
____________________________________
| | |
| | |
| | |
| | |
_____________________________________
TableC将由TableA(ID),TableB(Duty)填充,并且输入日期i将通过以下附加查询进行调度
INSERT INTO TABLEC ( DUTY, DATE, ID )
SELECT TABLEB.DUTY, [INPUT DATE], TABLEA.ID
FROM TABLEA, TABLEB INNER JOIN n ON n.n <= TABLEB.[Number of Police needed for each service];
(n是一个数字表,n.n是一个具有10000个数字的列,因此请不要注意) 现在,附加查询向我返回了我需要的结果,但是发生的是,该类型乘上所需的职位与该人员的ID。 所以不要这样:
TABLEC
ID | DUTY | DATE |
____________________________________
288066 | Patrol | 23/06/2019 |
273111 | Guards | 23/06/2019 |
231444 | Courts | 23/06/2019 |
298432 | Courts | 23/06/2019 |
_____________________________________
我有这个
:TABLEC
ID | DUTY | DATE |
____________________________________
288066 | Patrol | 23/06/2019 |
288066 | Guards | 23/06/2019 |
288066 | Courts | 23/06/2019 |
288066 | Courts | 23/06/2019 |
273111 | Patrol | 23/06/2019 |
273111 | Guards | 23/06/2019 |
273111 | Courts | 23/06/2019 |
273111 | Courts | 23/06/2019 |
231444 | Patrol | 23/06/2019 |
231444 | Guards | 23/06/2019 |
231444 | Courts | 23/06/2019 |
231444 | Courts | 23/06/2019 |
298432 | Patrol | 23/06/2019 |
298432 | Guards | 23/06/2019 |
298432 | Courts | 23/06/2019 |
298432 | Courts | 23/06/2019 |
_____________________________________
有没有一种方法可以自动连接TableA.ID和TableB.DUTY?