如何为每行输出7条记录,每周输出1条记录?

时间:2016-02-14 01:50:44

标签: sql sql-server-2008

试图在这里保存自己的大量数据。我目前有以下输出:

CONTID  DESCR
001     Area 1
001     Area 2
001     Area 3

我想做的是为每个" DESCR"输出7条记录。 (区域),每周一天1(相应地为0 - 6)。

示例输出将是:

CONTID  DESCR         DAYOFWEEK
001     Area 1        0
001     Area 1        1
001     Area 1        2
001     Area 1        3
001     Area 1        4
001     Area 1        5
001     Area 1        6
001     Area 2        0
001     Area 2        1
001     Area 2        2
001     Area 2        3
001     Area 2        4
001     Area 2        5
001     Area 2        6
001     Area 3        etc...

如果可能的话,我想用直接的SQL做这件事。这是一次性的复制/粘贴"填写新表的工作。

2 个答案:

答案 0 :(得分:3)

您可以使用CROSS JOIN

执行此操作

(Thx to @TT。指出,我的答案会被缩短)

DECLARE @tbl TABLE(CONTID INT,  DESCR VARCHAR(100));
INSERT INTO @tbl VALUES
 (001,'Area 1')
,(001,'Area 2')
,(001,'Area 3');

SELECT *
FROM @tbl AS tbl
CROSS JOIN (VALUES(0),(1),(2),(3),(4),(5),(6)) AS AllDays(DayInx)

答案 1 :(得分:1)

另外,考虑这个其他解决方案也使用交叉连接,但隐式使用派生表,以便将来需要在其特定RDMS中使用通用SQL解决方案的读者:

Reginaldo@Dell MINGW64 /c/dev/php/laravel/flamboyant (master)
$ php artisan
←[32mLaravel Framework←[39m version ←[33m5.1.29 (LTS)←[39m

←[33mUsage:←[39m
  command [options] [arguments]

←[33mOptions:←[39m
  ←[32m-h, --help←[39m            Display this help message
  ←[32m-q, --quiet←[39m           Do not output any message
  ←[32m-V, --version←[39m         Display this application version
  ←[32m    --ansi←[39m            Force ANSI output
  ←[32m    --no-ansi←[39m         Disable ANSI output
  ←[32m-n, --no-interaction←[39m  Do not ask any interactive question
  ←[32m    --env[=ENV]←[39m       The environment the command should run under.
  ←[32m-v|vv|vvv, --verbose←[39m  Increase the verbosity of messages: 1 for norm
al output, 2 for more verbose output and 3 for debug

←[33mAvailable commands:←[39m
  ←[32mclear-compiled←[39m      Remove the compiled class file
  ←[32mdown←[39m                Put the application into maintenance mode
  ←[32menv←[39m                 Display the current framework environment
  ←[32mhelp←[39m                Displays help for a command
  ←[32minspire←[39m             Display an inspiring quote
  ←[32mlist←[39m                Lists commands
  ←[32mmigrate←[39m             Run the database migrations
  ←[32moptimize←[39m            Optimize the framework for better performance
  ←[32mserve←[39m               Serve the application on the PHP development ser
ver
  ←[32mtinker←[39m              Interact with your application
  ←[32mup←[39m                  Bring the application out of maintenance mode
 ←[33mapp←[39m
  ←[32mapp:name←[39m            Set the application namespace
 ←[33mauth←[39m
  ←[32mauth:clear-resets←[39m   Flush expired password reset tokens
 ←[33mcache←[39m
  ←[32mcache:clear←[39m         Flush the application cache
  ←[32mcache:table←[39m         Create a migration for the cache database table
 ←[33mconfig←[39m
  ←[32mconfig:cache←[39m        Create a cache file for faster configuration loa
ding
  ←[32mconfig:clear←[39m        Remove the configuration cache file
 ←[33mdb←[39m
  ←[32mdb:seed←[39m             Seed the database with records
 ←[33mevent←[39m
  ←[32mevent:generate←[39m      Generate the missing events and listeners based
on registration
 ←[33mhandler←[39m
  ←[32mhandler:command←[39m     Create a new command handler class
  ←[32mhandler:event←[39m       Create a new event handler class
 ←[33mkey←[39m
  ←[32mkey:generate←[39m        Set the application key
 ←[33mmake←[39m
  ←[32mmake:command←[39m        Create a new command class
  ←[32mmake:console←[39m        Create a new Artisan command
  ←[32mmake:controller←[39m     Create a new resource controller class
  ←[32mmake:event←[39m          Create a new event class
  ←[32mmake:job←[39m            Create a new job class
  ←[32mmake:listener←[39m       Create a new event listener class
  ←[32mmake:middleware←[39m     Create a new middleware class
  ←[32mmake:migration←[39m      Create a new migration file
  ←[32mmake:model←[39m          Create a new Eloquent model class
  ←[32mmake:policy←[39m         Create a new policy class
  ←[32mmake:provider←[39m       Create a new service provider class
  ←[32mmake:request←[39m        Create a new form request class
  ←[32mmake:seeder←[39m         Create a new seeder class
  ←[32mmake:test←[39m           Create a new test class
 ←[33mmigrate←[39m
  ←[32mmigrate:install←[39m     Create the migration repository
  ←[32mmigrate:refresh←[39m     Reset and re-run all migrations
  ←[32mmigrate:reset←[39m       Rollback all database migrations
  ←[32mmigrate:rollback←[39m    Rollback the last database migration
  ←[32mmigrate:status←[39m      Show the status of each migration
 ←[33mqueue←[39m
  ←[32mqueue:failed←[39m        List all of the failed queue jobs
  ←[32mqueue:failed-table←[39m  Create a migration for the failed queue jobs dat
abase table
  ←[32mqueue:flush←[39m         Flush all of the failed queue jobs
  ←[32mqueue:forget←[39m        Delete a failed queue job
  ←[32mqueue:listen←[39m        Listen to a given queue
  ←[32mqueue:restart←[39m       Restart queue worker daemons after their current
 job
  ←[32mqueue:retry←[39m         Retry a failed queue job
  ←[32mqueue:subscribe←[39m     Subscribe a URL to an Iron.io push queue
  ←[32mqueue:table←[39m         Create a migration for the queue jobs database t
able
  ←[32mqueue:work←[39m          Process the next job on a queue
 ←[33mroute←[39m
  ←[32mroute:cache←[39m         Create a route cache file for faster route regis
tration
  ←[32mroute:clear←[39m         Remove the route cache file
  ←[32mroute:list←[39m          List all registered routes
 ←[33mschedule←[39m
  ←[32mschedule:run←[39m        Run the scheduled commands
 ←[33msession←[39m
  ←[32msession:table←[39m       Create a migration for the session database tabl
e
 ←[33mtracker←[39m
  ←[32mtracker:tables←[39m      Create the migrations for Tracker database table
s and columns
 ←[33mvendor←[39m
  ←[32mvendor:publish←[39m      Publish any publishable assets from vendor packa
ges
 ←[33mview←[39m
  ←[32mview:clear←[39m          Clear all compiled view files

Reginaldo@Dell MINGW64 /c/dev/php/laravel/flamboyant (master)