Welcome to Sign in | Help

Re: Nu ma descurc cu o interogare....

  •  09-28-2008, 12:52 PM

    Re: Nu ma descurc cu o interogare....

    Bine.
    Atunci interogarea ar putea fi:

    SELECT N.DATADOC,
    N.NRDOC,
    S.OPERATIE,
    SUM( CASE WHEN S.COL = 1 THEN N.LEI ELSE 0 END ) AS Col1,
    SUM( CASE WHEN S.COL = 2 THEN CASE WHEN S.OPERATIE=0 THEN N.LEI ELSE -N.LEI END ELSE 0 END ) AS Col2
    FROM dbo.NOTE AS N INNER JOIN dbo.SCHEME_RG AS S ON N.CONTDB LIKE S.CONTDB AND N.CONTCR LIKE S.CONTCR
    GROUP BY N.TIPDOC, N.NRDOC, N.DATADOC, S.OPERATIE
    ORDER BY N.NRDOC

    cu setul de înregistrări rezultate:
    2008-09-01 00:00:00.000    1111    0    915.00    0.00
    2008-09-01 00:00:00.000    2222    0    130.00    10.70
    2008-09-01 00:00:00.000    2222    1    0.00     -10.70
    2008-09-01 00:00:00.000    3333    1    142.20    0.00


    A treia înregistrare este afişată deoarece:
    [1] pentru afişare valorilor din câmpul S.OPERATIE acesta trebuie inclus în clauza GROUP BY,
    [2] automat [1] presupune şi faptul că în setul de înregistrări rezultate să fie afişate grupurile
    2222    0     10.70 pentru achiziţie şi
    2222    1    -10.70 pentru vânzare
    [3] [2] indică faptul că rezultatul
    01/09/2008, 1111, MAMAMIA, 0, 915.00, 0.00
    01/09/2008, 2222, COCACOLA, 0, 130,00, 10.7
    01/09/2008, 3333, PEPSICOLA, 1, 142.2, 0.00

    este imposibil de obţinut (asta dacă nu intervine o condiţie WHERE Col2 > 0 / WHERE SUM( CASE WHEN S.COL = 2 ... > 0 de exemplu)
    ...
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems