Welcome to Sign in | Help

Re: Group by ... (duplicate)

  •  11-27-2007, 2:44 PM

    Re: Group by ... (duplicate)

    E normal să nu apară. De exemplu dacă încercăm următoarele query-uri, în Northwind:

    SELECT COUNT(*) as Nr FROM Employees WHERE FirstName='Nimeni'

     

    SELECT FirstName, COUNT(*) as Nr FROM Employees
    WHERE FirstName='Nimeni' GROUP BY FirstName

     

    La primul obţinem: 

    Nr
    -----------
    0
    (1 row(s) affected)

    Însă la al doilea nu obţinem nimic:

    FirstName  Nr
    ---------- -----------
    (0 row(s) affected)

    Ideea e că nu are cum să apară 'Nimeni' în coloana FirstName, dacă în coloana FirstName din tabelă nu apare niciodată 'Nimeni'. 

    Dacă dorim să obţinem:

    FirstName Nr
    --------- -----------
    Nimeni    0
    (1 row(s) affected)

    Atunci o soluţie ar fi:

    SELECT 'Nimeni' as FirstName, COUNT(*) as Nr FROM Employees
    WHERE FirstName='Nimeni'

     

    O altă soluţie, ceva mai complicată, care are avantajul că scriem 'Nimeni' o singură dată, ar fi: 

    SELECT FirstName, (
                SELECT COUNT(*) FROM Employees e WHERE e.FirstName=x.FirstName
    ) as Nr
    FROM (SELECT 'Nimeni' as FirstName) x

    Răzvan

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