Eu tenho uma tabela que se parece com isso:
+====================================================+
| aid | uid | eid | name | dob | paid |
+====================================================+
| 1 | 100 | 10 | Mick | 1980-03-29 | 40 |
| 2 | 101 | 11 | Jack | 1969-11-21 | 40 |
| 3 | 205 | 11 | Lynn | 1990-07-10 | 80 |
| 4 | 217 | 10 | Dana | 1987-02-15 | 40 |
+----------------------------------------------------+
Onde aid = coluna de identidade da tabela temporária, uid = tabela do usuário FK, eid = tabela do empregador FK
Portanto, esses dados precisam ir para outra tabela, mas ficaria mais ou menos assim:
+====================================================+
| id | uid | eid | week | postdate | paid |
+====================================================+
| 1 | 100 | 10 | 1 | 2015-09-03 | 10 |
| 2 | 100 | 10 | 2 | 2015-09-03 | 10 |
| 3 | 100 | 10 | 3 | 2015-09-03 | 10 |
| 4 | 100 | 10 | 4 | 2015-09-03 | 10 |
| 1 | 101 | 11 | 1 | 2015-09-03 | 10 |
| 2 | 101 | 11 | 2 | 2015-09-03 | 10 |
| 3 | 101 | 11 | 3 | 2015-09-03 | 10 |
| 4 | 101 | 11 | 4 | 2015-09-03 | 10 |
| 1 | 205 | 11 | 1 | 2015-09-03 | 20 |
| 2 | 205 | 11 | 2 | 2015-09-03 | 20 |
| 3 | 205 | 11 | 3 | 2015-09-03 | 20 |
| 4 | 205 | 11 | 4 | 2015-09-03 | 20 |
| 1 | 217 | 10 | 1 | 2015-09-03 | 10 |
| 2 | 217 | 10 | 2 | 2015-09-03 | 10 |
| 3 | 217 | 10 | 3 | 2015-09-03 | 10 |
| 4 | 217 | 10 | 4 | 2015-09-03 | 10 |
+----------------------------------------------------+
Então, o que está acontecendo é que eu escolho um mês do ano e, em seguida, obtenho os números da semana desse mês ( week
coluna) e, para cada registro em minha tabela inicial, adiciono um à minha segunda tabela. Mick, Jack e Dana pagaram 40 (divididos em 4 [semanas do mês]) e Lynn pagou 80, chegando a 20 por semana do mês selecionado.
Então, basicamente, gostaria de perguntar se ESSE ou ESSE tipo de método usando a CURSOR
é o que estou procurando ou se há algo mais específico para inserir registros de a SELECT
para cada registro na tabela (não mais que 600 (x4) registros em A Hora).
De um lado, observe os exemplos apenas considerando "mover" ou replicar os registros de uma tabela para a outra, de modo que 100 registros aqui se tornem 100 registros ali. Quais opções posso implementar para inserir 4 registros por cada um na minha tabela temporária (além de loops no meu código de front-end) usando SQL?
Abaixo está um exemplo que usa um CTE recursivo para criar valores semanais e um simples INSERT...SELECT para preencher sua tabela. Presumi alguns IDs de identidade para fins de teste, além da data posterior ser a data atual. Você não precisa de um cursor para fazer este trabalho. Apreciar!