<?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>Intrebari generale</title><link>http://sqlserver.ro/forums/16/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: select cu eliminare de randuri</title><link>http://sqlserver.ro/forums/thread/5125.aspx</link><pubDate>Wed, 18 Jun 2008 08:39:58 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:5125</guid><dc:creator>Daemian</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/5125.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=5125</wfw:commentRss><description>Multumesc, face exact ceea ce vroiam eu. Si da... foloseam SQL 2005. Mersi inca o data pt ajutor.&lt;br&gt;</description></item><item><title>Re: select cu eliminare de randuri</title><link>http://sqlserver.ro/forums/thread/5124.aspx</link><pubDate>Wed, 18 Jun 2008 08:14:51 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:5124</guid><dc:creator>rsocol</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/5124.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=5124</wfw:commentRss><description>Dacă foloseşti SQL Server 2000, poţi utiliza următorul query:&lt;br&gt;&lt;br&gt;SELECT Data, Tip FROM Tabela x&lt;br&gt;WHERE Data=(SELECT MIN(Data) FROM Tabela)&lt;br&gt;OR Tip='B' OR (&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT TOP 1 Tip FROM Tabela y&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE y.Data&amp;lt;x.Data ORDER BY Data DESC&lt;br&gt;)='B'&lt;br&gt;&lt;br&gt;De fapt, acest query pare a avea performanţe mai bune decât cel din mesajul precedent (presupunând că există un index pe coloana Data), aşa că îl recomand indiferent de versiune.&lt;br&gt;&lt;br&gt;Răzvan&lt;br&gt;</description></item><item><title>Re: select cu eliminare de randuri</title><link>http://sqlserver.ro/forums/thread/5123.aspx</link><pubDate>Wed, 18 Jun 2008 08:11:22 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:5123</guid><dc:creator>rsocol</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/5123.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=5123</wfw:commentRss><description>Să considerăm tabela şi datele de test de mai jos:&lt;br&gt;&lt;br&gt;CREATE TABLE Tabela (&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data datetime PRIMARY KEY,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tip char(1) NOT NULL CHECK (Tip IN ('A','B'))&lt;br&gt;)&lt;br&gt;&lt;br&gt;INSERT INTO Tabela VALUES ('20080101','A')&lt;br&gt;INSERT INTO Tabela VALUES ('20080102','A')&lt;br&gt;INSERT INTO Tabela VALUES ('20080103','B')&lt;br&gt;INSERT INTO Tabela VALUES ('20080104','A')&lt;br&gt;INSERT INTO Tabela VALUES ('20080205','B')&lt;br&gt;INSERT INTO Tabela VALUES ('20080206','A')&lt;br&gt;INSERT INTO Tabela VALUES ('20080207','A')&lt;br&gt;INSERT INTO Tabela VALUES ('20080308','A')&lt;br&gt;INSERT INTO Tabela VALUES ('20080309','B')&lt;br&gt;INSERT INTO Tabela VALUES ('20080310','A')&lt;br&gt;&lt;br&gt;Dacă foloseşti SQL Server 2005, următorul query furnizează rezultatele dorite:&lt;br&gt;&lt;br&gt;WITH T AS (&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT *, ROW_NUMBER() OVER (ORDER BY Data) n&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Tabela&lt;br&gt;)&lt;br&gt;SELECT x.Data, x.Tip FROM T x&lt;br&gt;LEFT JOIN T y ON x.n=y.n+1 AND y.Tip='B'&lt;br&gt;WHERE x.Tip='B' OR y.Tip='B' OR x.n=1&lt;br&gt;&lt;br&gt;Răzvan</description></item><item><title>Re: select cu eliminare de randuri</title><link>http://sqlserver.ro/forums/thread/5122.aspx</link><pubDate>Wed, 18 Jun 2008 07:51:42 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:5122</guid><dc:creator>rsocol</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/5122.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=5122</wfw:commentRss><description>SQL 2000 sau 2005 ?&lt;br&gt;&lt;br&gt;Razvan&lt;br&gt;</description></item><item><title>select cu eliminare de randuri</title><link>http://sqlserver.ro/forums/thread/5121.aspx</link><pubDate>Wed, 18 Jun 2008 07:07:15 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:5121</guid><dc:creator>Daemian</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/5121.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=5121</wfw:commentRss><description>Salut&lt;br&gt;&lt;br&gt;Am o tabela care contine (printre altele) un camp ce poate lua doar 2 valori (sa zicem A si B). In aceasta tabela pot avea oricate inregistrari de A si/sau de B, cu conditia ca prima inregistrare sa fie A si nu pot exista 2 inregistrari consecutive de tip B. Tabela este ordonata crescator in functie de o data calendaristica. Ceva de genul:&lt;br&gt;rand 1: A&lt;br&gt;rand 2: A&lt;br&gt;rand 3: B&lt;br&gt;rand 4: A&lt;br&gt;rand 5: B&lt;br&gt;rand 6: A&lt;br&gt;rand 7: A&lt;br&gt;rand 8: A&lt;br&gt;rand 9: B&lt;br&gt;rand 10: A&lt;br&gt;Din aceasta tabela, trebuie sa obtin toate randurile de B, primul rand de A si toate randurile de A care urmeaza imediat dupa B. Altfel spus, din exemplul dat de mine trebuie sa rezulte:&lt;br&gt;rand 1&lt;br&gt;rand 3&lt;br&gt;rand 4&lt;br&gt;rand 5&lt;br&gt;rand 6&lt;br&gt;rand 9&lt;br&gt;rand 10&lt;br&gt;&lt;br&gt;Aveti vreo idee?&lt;br&gt;</description></item></channel></rss>