rsocol: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
Cred ca am exemplificat problema destul de stangaci. Am o metoda pur proprie de a ma exprima :)
Filtrul din exemplul meu si, "Nimeni" din al tau, nu era neaparat necesar (si nici nu era folosit), l-am pus doar ca sa exemplific cu un rezultat de 1 rand, respectiv 0, dupa cum ai facut-o si tu.
Ca sa "pictez" mai bine problema, column4 este o coloana de id-uri ce inregistreaza anumite documente, care, la randul lor, in functie de anumite flag-uri au comportamente diferite.
Acea coloana era si coloana pe care faceam join cu aceasta tabela si ma interesa sa-mi afiseze si id-urile ce nu contineau un anume flag (E destul de mult de explicat, tine de scadente, incasari, retururi, etc si nu are rost sa va plictisesc cu asta).
Structura bazei este destul de complicata si era nevoie si de un al 3-lea self join ca sa functioneze corect.
Dar, o sa va bucurati cu totii ca in final, am rescris interogarea, urmand alt sir logic si am ocolit totalmente aceasta problema.
Va multumesc tuturor pt raspunsuri,
V.
P.S.: tot m-ar interesa daca exista vreo modalitate de a afisa ceea ce am exemplificat mai sus si in alta metoda decat cea expusa de Razvan.
Group by all nu este o varianta :)