ale pisałem wyżej że osobno selecty działają tak jak bym oczekiwał.. serio ;]
SELECT z dodatkową logiką
-
- Posty: 1113
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 72 times
- Been thanked: 336 times
Re: SELECT z dodatkową logiką
-
- Posty: 8677
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 2074 times
- Been thanked: 1550 times
-
- Posty: 1113
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 72 times
- Been thanked: 336 times
Re: SELECT z dodatkową logiką
Działa, sorrki, napisałem że "ooo mega, super."
Niewiarygodne że zadziałało zgodnie z oczekiwaniami.
Natomiast dodałem pytanie pomocnicze bo muszę wykluczać po pozycjach zamówień (inna pozycja może mieć przetworzony SPED z inną dostawą) i tu nie mam za bardzo pomysłu jak wykluczyć kombinację po kluczu EBELN+EBELP (w sensie jak zrobić osobno pola NOT IN EBELN NOT IN EBELP ?)

Natomiast dodałem pytanie pomocnicze bo muszę wykluczać po pozycjach zamówień (inna pozycja może mieć przetworzony SPED z inną dostawą) i tu nie mam za bardzo pomysłu jak wykluczyć kombinację po kluczu EBELN+EBELP (w sensie jak zrobić osobno pola NOT IN EBELN NOT IN EBELP ?)
-
- Posty: 575
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 10 times
- Been thanked: 183 times
Re: SELECT z dodatkową logiką
Tu trzeba trochę namieszaćwojtas7 pisze: ↑pn kwie 14, 2025 2:50 pm Działa, sorrki, napisałem że "ooo mega, super."Niewiarygodne że zadziałało zgodnie z oczekiwaniami.
Natomiast dodałem pytanie pomocnicze bo muszę wykluczać po pozycjach zamówień (inna pozycja może mieć przetworzony SPED z inną dostawą) i tu nie mam za bardzo pomysłu jak wykluczyć kombinację po kluczu EBELN+EBELP (w sensie jak zrobić osobno pola NOT IN EBELN NOT IN EBELP ?)

Kod: Zaznacz cały
with +exclude as (
select distinct concat( ebeln, ebelp ) as pur_doc
from ekbe join nast
on ekbe~belnr = nast~objky
where ebeln in @s_ebeln and
kappl = 'V2' and
kschl = 'SPED' and
vstat = '1'
) select ebeln, belnr, vstat
from ekbe join nast
on ekbe~belnr = nast~objky
where ebeln in @s_ebeln and
concat( ebeln, ebelp ) not in ( select pur_doc from +exclude ) and
kappl = 'V2' and
kschl = 'SPED' and
vstat = '2'
into table @data(stats).
Pozdrawiam,
Jacek Witczak
http://novertio.pl
Jacek Witczak
http://novertio.pl
-
- Posty: 1113
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 72 times
- Been thanked: 336 times
Re: SELECT z dodatkową logiką
Działa świetnie, dzięki. Ciekawe czemu nie chciało działać normalnie z NOT IN ....
-
- Posty: 8677
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 2074 times
- Been thanked: 1550 times
-
- Posty: 1113
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 72 times
- Been thanked: 336 times
Re: SELECT z dodatkową logiką
dla HU podawanych na ekranie selekcji, też działa w ten sposób 

Kod: Zaznacz cały
WITH +exclude AS (
SELECT DISTINCT exidv
FROM vekp JOIN vepo
ON vekp~venum = vepo~venum
JOIN nast
ON nast~objky = vepo~vbeln
WHERE exidv IN @s_exidv AND
nast~kappl = 'V2' AND
nast~kschl = 'SPED' AND
nast~vstat = '1' " correct outputs
) SELECT exidv, objky
FROM vekp JOIN vepo
ON vekp~venum = vepo~venum
JOIN nast
ON nast~objky = vepo~vbeln
WHERE exidv IN @s_exidv AND
exidv NOT IN ( SELECT exidv FROM +exclude ) AND
nast~kappl = 'V2' AND
nast~kschl = 'SPED' AND
nast~vstat = '2' " error outputs
INTO TABLE @DATA(lt_hu_data).
-
- Posty: 575
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 10 times
- Been thanked: 183 times
Re: SELECT z dodatkową logiką
me bałdzo happy że mogło pomóc 

Pozdrawiam,
Jacek Witczak
http://novertio.pl
Jacek Witczak
http://novertio.pl
-
- Posty: 8677
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 2074 times
- Been thanked: 1550 times
Re: SELECT z dodatkową logiką
@yacol Dlaczego Twoje zapytanie z WITH ... AS działa a pierwotne z podzapytaniem wstawionym w NOT IN nie działa?
-
- Posty: 575
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 10 times
- Been thanked: 183 times
Re: SELECT z dodatkową logiką
Szczerze mówiąc to nie widzę w pierwotnym zapytaniu nic co może powodować, że nie działa. Bez dostępu do systemu wojtasa7 trudno o diagnozę...
Pozdrawiam,
Jacek Witczak
http://novertio.pl
Jacek Witczak
http://novertio.pl
Re: SELECT z dodatkową logiką
Otóż to. I to jest zastanawiające. Inna sprawa, że Twoje rozwiązanie nie zadziała wszędzie. Mam SAP_BASIS 750 0019 i niestety info, że e tej wersji +exclude nie zadziała

SAP ABAP Certified Developer
-
- Posty: 575
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 10 times
- Been thanked: 183 times
Re: SELECT z dodatkową logiką
To prawda, WITH ...+ wykorzystuje CTE (common table expression), które jest dostępne na HANIE od 7.52. Za to jest potężnym narzędziem jeśli chodzi o wydajność więc warto z tego korzystać.
Pozdrawiam,
Jacek Witczak
http://novertio.pl
Jacek Witczak
http://novertio.pl