Zapytania księgowe z warunkiem na miesiąc

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, obiekty COM .NET

Moderator: mikey

Jacenty.K
Posty: 5
Rejestracja: 19 lut 2021, 14:47
Rola: Inny
Wersja: 2019

Zapytania księgowe z warunkiem na miesiąc

Post autor: Jacenty.K »

Poszukuję rozwiązania na warunkowe wyliczanie kolumny 2 wg końca roku:
W założeniu zestawienie ma inaczej liczyć na poszczególne miesiące, a na koniec roku (wg miesiąca) ma być inaczej liczona kolumna 2 (bieżąca).

Zmodyfikowałem definicję w następujący sposób:

Z:

Kod: Zaznacz cały

CHOOSE(
@KOLUMNA()=1,
@SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR),
@SaldoMa(240) - @SaldoMa(240-PKMG_CE4) - @SaldoMa(240-PBG_4) - @SaldoMa(240-PFR))
Na:

Kod: Zaznacz cały

CHOOSE(
    @KOLUMNA()=1,
    @SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR),
    CHOOSE(
        SQL('SELECT MONTH('&DataDoSQL&')')=12,
        @SaldoMa(240) - @SaldoMa(240-PKMG_CE4) - @SaldoMa(240-PBG_4) - @SaldoMa(240-PFR),
        @SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR)
    )
)
W drugiej opcji CHOOSE wykorzystałem proste zapytanie SQL:

Kod: Zaznacz cały

 SQL('SELECT MONTH('&DataDoSQL&')')
.

Niestety przy próbie przeliczenia wyświetla mi się komunikat o błędzie:

"Błąd w definicji zestawienia. Zestawienie: ! BILANS DUŻY 2021 Pozycja: -.B.III.1.b.: CHOOSE(
@KOLUMNA()=1,
@SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR),
CHOOSE(
SQL('SELECT MONTH('&DataDoSQL&')')=12,
@SaldoMa(240) - @SaldoMa(240-PKMG_CE4) - @SaldoMa(240-PBG_4) - @SaldoMa(240-PFR),
@SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR)
)
)"


Sprawdziłem nawiasy, sprawdziłem apostrofy, samo zapytanie SQL sprawdziłem w Microsoft SQL:

select MONTH( '2021-11-30' ) - wynik 11

select MONTH( '2021-12-31' ) - wynik 12

Pozdrawiam
Jacek K.
Pozdrawiam
Jacek K.

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Zapytania księgowe z warunkiem na miesiąc

Post autor: praiser »

a moze zamiast drugiego choose to lepiej case

CHOOSE(
@KOLUMNA()=1,
@SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR),
(SQL
('SELECT CASE WHEN MONTH('&DataDoSQL&')=12 THEN (@SaldoMa(240) - @SaldoMa(240-PKMG_CE4) - @SaldoMa(240-PBG_4) - @SaldoMa(240-PFR)
ELSE (@SaldoMa(240) - @SaldoMa(240-PKMG_CE3) - @SaldoMa(240-PBG_3) - @SaldoMa(240-PFR)
END)')

nie sprawdzałem nawiasów.
--------------------------------
Pozdrawiam
WW

ODPOWIEDZ