Welcome to Sign in | Help

Re: t-sql update sql server 2000

  •  02-17-2009, 4:14 PM

    Re: t-sql update sql server 2000

    Într-adevăr, UPDATE-ul de mai sus se face pe primele două înregistrări (aşa înţelesesem că trebuie). Dacă trebuie doar pe a doua înregistrare, atunci putem face ceva de genul:

    UPDATE aaa SET Principal=0
    WHERE DataInregistrare = (
    SELECT MIN(DataInregistrare) FROM aaa b
    WHERE b.CodContract=aaa.CodContract
    AND DataInregistrare>(
    SELECT MIN(DataInregistrare) FROM aaa c
    WHERE c.CodContract=aaa.CodContract
    )
    AND DATEDIFF(month, DataInregistrare, (
    SELECT MIN(DataInregistrare) FROM aaa d
    WHERE d.CodContract=aaa.CodContract
    ))=0
    ORDER BY DataInregistrare
    )

    Obs1: pentru ca performanţa să fie acceptabilă, ar fi bine să existe un index compus pe coloanele CodContract şi DataInregistrare.

    Obs2: pentru a obţine rezultate corecte, ar trebui să ne asigurăm că nu există două înregistrări în aceeaşi dată, pe acelaşi contract; cu alte cuvinte, indexul menţionat mai sus ar trebui să fie unic.

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