Welcome to Sign in | Help

Re: sql mobile records

  •  12-20-2007, 11:44 AM

    Re: sql mobile records

    Bogdan,

    Ai dreptate, query-ul meu era greşit.

    Nu am la îndemână o bază de date din Compact Edition acum, dar să luăm următorul exemplu în AdventureWorks:

    SELECT ContactID, FirstName, LastName
    FROM Person.Contact WHERE LastName='Weber' ORDER BY FirstName

    Query-ul de mai sus returnează 19 înregistrări. Query-ul meu:

    SELECT * FROM (
      SELECT TOP 8 * FROM (
        SELECT TOP 24 ContactID, FirstName, LastName
        FROM Person.Contact WHERE LastName='Weber' ORDER BY FirstName
      ) x ORDER BY FirstName DESC
    ) y ORDER BY FirstName

    ar fi returnat ultimele 8 înregistrări (de la 12 la 19), în loc să returneze cele 3 înregistrări (de la 17 la 19) care ar fi trebuit să fie pe ultima pagină.

    Un query corect ar putea fi:

    SELECT TOP 8 ContactID, FirstName, LastName
    FROM Person.Contact WHERE LastName='Weber'
    AND ContactID NOT IN (
      SELECT TOP 16 ContactID
      FROM Person.Contact WHERE LastName='Weber' ORDER BY FirstName
    ) ORDER BY FirstName

    Răzvan

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