Welcome to Sign in | Help

Re: cursor sau query pt. o situatie mai complicata

  •  08-03-2007, 5:24 PM

    Re: cursor sau query pt. o situatie mai complicata

    hyghnet,

    Query-ul scris de Diana ar trebui să furnizeze rezultatele corecte. Singura problemă este în datele de test: în primul rând ai scris 1/2006, iar în următoarele două ai scris 1/2007, dar cred că vroiai să scrii aceeaşi valoare. Încearcă, de exemplu, cu următoarele date de test:

    CREATE TABLE Tabela (
        nr_inreg varchar(7) NOT NULL,
        data_inreg smalldatetime NOT NULL,
        tip varchar(10) NULL,
        PRIMARY KEY (nr_inreg, data_inreg)
    )

    INSERT INTO Tabela VALUES ('1/2007','20070501',NULL)
    INSERT INTO Tabela VALUES ('1/2007','20070505','ACTIV')
    INSERT INTO Tabela VALUES ('1/2007','20070507','ACTIV')
    INSERT INTO Tabela VALUES ('2/2007','20070520','ACTIV')
    INSERT INTO Tabela VALUES ('2/2007','20070603',NULL)
    INSERT INTO Tabela VALUES ('2/2007','20070615','ACTIV')
    INSERT INTO Tabela VALUES ('2/2007','20070621',NULL)
    INSERT INTO Tabela VALUES ('3/2007','20070627',NULL)
    INSERT INTO Tabela VALUES ('3/2007','20070704',NULL)
    INSERT INTO Tabela VALUES ('4/2007','20070717',NULL)
    INSERT INTO Tabela VALUES ('5/2007','20070725',NULL)
    INSERT INTO Tabela VALUES ('5/2007','20070728',NULL)
    INSERT INTO Tabela VALUES ('6/2007','20070805','ACTIV')
    INSERT INTO Tabela VALUES ('6/2007','20070808',NULL)

    SELECT a.* FROM Tabela a INNER JOIN (
        SELECT nr_inreg, MAX(data_inreg) as ultima_data
        FROM Tabela GROUP BY nr_inreg
    ) b ON a.nr_inreg=b.nr_inreg and a.data_inreg=b.ultima_data
    WHERE data_inreg<'20070726' AND tip IS NULL

    Răzvan 

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems