<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlserver.ro/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>T-SQL</title><link>http://sqlserver.ro/forums/15/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: date saptaminale</title><link>http://sqlserver.ro/forums/thread/7518.aspx</link><pubDate>Tue, 18 Aug 2009 07:27:25 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7518</guid><dc:creator>ignatandrei</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7518.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=7518</wfw:commentRss><description>&lt;br&gt;Merge de minune ... O singura observatie ( care nu diminueaza cit de mult m-ai ajutat!) : &lt;br&gt;nu mai e nevoie de GROUP BY Persoana, &lt;b&gt;DATEPART(wk...)&lt;br&gt;&lt;/b&gt;pentru ca avem deja in tabela acel datepart.&lt;br&gt;&lt;br&gt;Multumesc mult!</description></item><item><title>Re: date saptaminale</title><link>http://sqlserver.ro/forums/thread/7512.aspx</link><pubDate>Mon, 17 Aug 2009 17:00:04 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7512</guid><dc:creator>rsocol</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7512.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=7512</wfw:commentRss><description>Cel mai simplu ar fi dacă &amp;#238;ţi construieşti o tabelă "Calendar" cu toate zilele din perioada admisibilă. Vezi:&lt;br /&gt;&lt;a href="http://sqlserver2000.databases.aspfaq.com/why-should-i-consider-using-an-auxiliary-calendar-table.html"&gt;http://sqlserver2000.databases.aspfaq.com/why-should-i-consider-using-an-auxiliary-calendar-table.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Poţi să generezi tabela Calendar pe baza unei tabele cu numere, generată "on-the-fly" cu una din metodele descrise &amp;#238;n:&lt;br /&gt;&lt;a href="http://www.projectdmx.com/tsql/tblnumbers.aspx"&gt;http://www.projectdmx.com/tsql/tblnumbers.aspx&lt;/a&gt;&lt;br /&gt;(eu prefer metoda cu CTE-uri a lui Itzik Ben-Gan: e foarte rapidă şi nu necesită crearea altor obiecte &amp;#238;n baza de date).&lt;br /&gt;&lt;br /&gt;După aceea, poţi să faci un:&lt;br /&gt;SELECT MIN(Data), MAX(Data), &lt;br /&gt;SUM(CASE WHEN DATEPART(dw...)&lt;br /&gt;FROM Calendar INNER JOIN Concedii ON Data BETWEEN DataInceput AND DataSfarsit&lt;br /&gt;GROUP BY Persoana, DATEPART(wk...)&lt;br /&gt;&lt;br /&gt;Dacă nu vrei să stochezi tabela Calendar, poţi să o construieşti on-the-fly cu un table-valued UDF, la fel ca şi tabela de numere.&lt;br /&gt;&lt;br /&gt;La DATEPART ar trebui să iei &amp;#238;n considerare şi @@DATEFIRST, pentru ca rezultatul să nu fie influenţat de SET DATEFIRST.&lt;br /&gt;&lt;br /&gt;(dacă ai nevoie de indicii mai precise, spune-ne...)&lt;br /&gt;&lt;br /&gt;Răzvan</description></item><item><title>date saptaminale</title><link>http://sqlserver.ro/forums/thread/7505.aspx</link><pubDate>Mon, 17 Aug 2009 11:53:31 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7505</guid><dc:creator>ignatandrei</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7505.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=7505</wfw:commentRss><description>Buna,&lt;br&gt;Am o problema : o tabela cu date, pe sql 2005, cu ,&amp;nbsp; sa zicem , zilele de concediu : DataInceput, DataSfirsit, Persoana . &lt;br&gt;As vrea sa obtin - facind cit mai putin operatii cu cursor ! - o tabela cu saptaminile anului&amp;nbsp; si cite zile lucratoare( maxim 5, nu intram in calendare ) din tabela cu date au existat in saptamina curenta, Persoana.&lt;br&gt;&lt;br&gt;De ex:&lt;br&gt;Sa zicem in in tabela cu date exista inregistrarea &lt;br&gt;DataInceput, DataSfirsit, Persoana &lt;br&gt;2009-07-14 , 2009-07-27, Andrei&lt;br&gt;&lt;br&gt;Vreau sa obtin :&lt;br&gt;Sapt 2009-07-12, 2009-07-19 : 3 zile ( 14, 15, 16), Andrei&lt;br&gt;Sapt 2009-07-19, 2009-07-26 : 5 zile ( toata sapt), Andrei&lt;br&gt;Sapt 2009-07-26, 2009-08-01 : 1 zile ( 27), Andrei&lt;br&gt;&lt;br&gt;Acum, pare sa fie simplu... Ca sa ma scuz, mentionez ca m-am intors azi din concediu si tare mi-e greu sa gindesc... Probabil ca un cursor banal ar merge ... dar as face cursor nu pe datele din tabela, ci pe saptaminile anului, dupa care sa fac un join cu tabela initiala.&lt;br&gt;&lt;br&gt;Please help&lt;br&gt;</description></item></channel></rss>