Skocz do zawartości

Asortyment - filtrowanie po "obrazku" ?

Polecane posty

Program nie udostępnia takiego filtrowania w module asortymentu. Jeśli posiada Pani wersję PRO, można stworzyć zapytanie własne SQL, które pokaże dane asortymentu w kontekście posiadania zdjęcia. 

W tym celu proszę dodać nowy raport SQL (Ctrl+Ins w module Raporty), wprowadzić dowolną nazwę, jako typ elementu wybrać "Asortyment",  wprowadzić dowolny opis oraz przypisać do grupy "Asortyment". Następnie w pole zapytanie proszę wstawić zapytanie, które dołączyłem w załączniku i zapisać raport. Po uruchomieniu go, otrzyma Pani oczekiwane dane.

sql_zdjęcia_asortymentow.sql

Link to postu
  • 1 miesiąc temu...

Może ja pomogę, zamiast Pana Marka ;) Poniżej zmodyfikowany skrypt o informacje o magazynie i ilości stanu na nim. Gdyby chciała Pani pokazać jednak wszystkie pozycje, ze względu na stan, to proszę usunąć "WHERE STAN.IloscDostepna>0"

WITH MediaDokumenty
AS
(
	SELECT DISTINCT Obiekt_Id
	FROM ModelDanychContainer.MediaDokumentElementy_MediaDokumentElement_Asortyment
)
SELECT		ASO.Id,
			ASO.Symbol,
			ASO.Nazwa,
            STAN.IloscDostepna,
            MAG.Nazwa,
			(CASE WHEN MD.Obiekt_Id IS NULL THEN 'Brak zdjęcia' ELSE 'Jest zdjęcie' END) AS Zdjecie
FROM		ModelDanychContainer.Asortymenty ASO
			LEFT JOIN
			MediaDokumenty MD
			ON ASO.Id = MD.Obiekt_Id
INNER JOIN ModelDanychContainer.StanyMagazynowe STAN ON STAN.Asortyment_Id=ASO.Id
INNER JOIN ModelDanychContainer.Magazyny MAG ON MAG.Id=STAN.Magazyn_Id
WHERE STAN.IloscDostepna>0
ORDER BY ASO.Symbol;

 

  • Lubię to 1
Link to postu
  • 2 lata później...

A jeszcze byłbym wdzięczny za mała podpowiedź bo dopisuję w raporcie ale nie mogę sobie z tym poradzić.

Potrzebowałbym jeszcze by w tym raporcie była kolumna czy jest to: "Pozycja do sklepu internetowego" / ewent. "Pozycja do serwisu aukcyjnego"

Byłoby tez super jakby była kolumna "Stan we wszystkich magazynach" bo w tej ilościowej dziwnie wybiera raz dostępną na jednym mag. raz na innym.

Z góry baaaaaaardzo dziękuję za taki "świąteczny prezent" :)

 

w tej chwili mam tak:

WITH MediaDokumenty
AS
(
	SELECT DISTINCT Obiekt_Id
	FROM ModelDanychContainer.MediaDokumentElementy_MediaDokumentElement_Asortyment
)
SELECT		ASO.Id,
			ASO.Symbol,
			ASO.Nazwa,
            STAN.IloscDostepna,
            MAG.Nazwa,
            ASO.Opis,
            ASO.Uwagi,
            GRUPY.Nazwa AS Grupa,
			(CASE WHEN MD.Obiekt_Id IS NULL THEN 'Brak zdjęcia' ELSE 'Jest zdjęcie' END) AS Zdjecie
FROM		ModelDanychContainer.Asortymenty ASO
			LEFT JOIN
			MediaDokumenty MD
			ON ASO.Id = MD.Obiekt_Id
			 LEFT JOIN ModelDanychContainer.GrupyAsortymentu GRUPY ON GRUPY.ID = ASO.GRUPA_ID
INNER JOIN ModelDanychContainer.StanyMagazynowe STAN ON STAN.Asortyment_Id=ASO.Id
INNER JOIN ModelDanychContainer.Magazyny MAG ON MAG.Id=STAN.Magazyn_Id
ORDER BY ASO.Symbol;

 

Link to postu

Dziękuję Bardzo Bardzo @Radomił Ząbik - powinieneś mieś jakąś specjalną premię od INSerta za poziom zaangażowania przez te wszystkie lata.. :)

 

Jedna rzecz mi jeszcze nie chce chodzić w tym kodzie nie wiem dlaczego - mimo usunięcia "WHERE STAN.IloscDostepna>0" wciąż wyświetla tylko część asortymentów o stanie zerowym - dokładnie 60 spośród wszystkich ok. 9k asortymentów o stanie zerowym w danej chwili - optymalnie byłoby gdyby pokazywał wszystkie pozycje Asortymentowe >=0

Link to postu
1 godzinę temu, RG Concept napisał:

Dziękuję Bardzo Bardzo @Radomił Ząbik - powinieneś mieś jakąś specjalną premię od INSerta za poziom zaangażowania przez te wszystkie lata..

Ja tutaj, to jestem pikuś, zresztą mało mam ostatnio czasu. Są tu lepsi specjaliści od NEXO, co pomagają, no i oczywiście sam InsERT, zarówno konsultanci i jak programiści, wkładają w to forum kupę serca.

2 godziny temu, RG Concept napisał:

Jedna rzecz mi jeszcze nie chce chodzić w tym kodzie nie wiem dlaczego - mimo usunięcia "WHERE STAN.IloscDostepna>0" wciąż wyświetla tylko część asortymentów o stanie zerowym - dokładnie 60 spośród wszystkich ok. 9k asortymentów o stanie zerowym w danej chwili - optymalnie byłoby gdyby pokazywał wszystkie pozycje Asortymentowe >=0

A tu racja, jest tu mały babol, trochę też logiczny :) Kwestia tego, że rekord stanu magazynowego, może nie istnieć, więc trzeba by to podmienić:

INNER JOIN ModelDanychContainer.StanyMagazynowe STAN ON STAN.Asortyment_Id=ASO.Id
INNER JOIN ModelDanychContainer.Magazyny MAG ON MAG.Id=STAN.Magazyn_Id

... na:

LEFT JOIN ModelDanychContainer.StanyMagazynowe STAN ON STAN.Asortyment_Id=ASO.Id
LEFT JOIN ModelDanychContainer.Magazyny MAG ON MAG.Id=STAN.Magazyn_Id

Ważne, efektem tego będzie, że przy niektórych pozycjach nie pokaże wtedy nazwy magazynu - to wynik tego, że czasem Subiekt nie ma wcale rekordu, nie wiem, czy to optymalizacja, czy co. Można by to obejść, śledząc przyjęcia, ale to już mocno komplikuje zapytanie i sam raport.

  • Lubię to 1
Link to postu

Dzięki - właśnie o tego "babola" chodziło - jednak jak się tego na co dzień nie robi to ulatuje z głowy - ..LEFT (OUTER) JOIN :) kiedyś pamiętałem..

Jeszcze raz thx i oczywiście co do ludzi z InsERTa, którzy tu pomagają jestem ZAWSZE pełen uznania - pomogli nie raz!, ale fajnie jak ktoś z drugiej strony znajduje chwilę żeby coś podpowiedzieć. Pzdr

  • Lubię to 1
Link to postu
  • 1 rok później...

Dodanie poniższego kodu do tego zapytania, teoretycznie powinno pokazać tylko te asortymenty, które kiedykolwiek z Vendero były synchronizowane, ale specjalistą od Vendero to ja nie jestem :)

INNER JOIN ModelDanychContainer.Vendero_Synch AS VEN ON VEN.Vendero_AsortymentSynch_Asortyment_Id=ASO.Id

 

Link to postu

Po zmianach raport wychodzi całkowicie pusty. Czy da się tak zmodyfikować poniżysz kod żeby pokazywał po prostu tylko pozycje sklepu internetowego asortymentu danego magazynu wraz z ceną np ewidencyjną ?

 

kod po zmianach :

 

WITH MediaDokumenty
AS
(
    SELECT DISTINCT Obiekt_Id
    FROM ModelDanychContainer.MediaDokumentElementy_MediaDokumentElement_Asortyment
    
)
SELECT        ASO.Id,
            ASO.Symbol,
            ASO.Nazwa,
            STAN.IloscDostepna,
            MAG.Nazwa,
            ASO.SerwisAukcyjny,
            ASO.SklepInternetowy,
            (SELECT SUM(STANCALY.IloscDostepna) FROM ModelDanychContainer.StanyMagazynowe STANCALY WHERE STANCALY.Asortyment_Id=ASO.Id) [Stan ogólny],
            
            (CASE WHEN MD.Obiekt_Id IS NULL THEN 'Brak zdjęcia' ELSE 'Jest zdjęcie' END) AS Zdjecie
FROM        ModelDanychContainer.Asortymenty ASO
            LEFT JOIN
            MediaDokumenty MD
            ON ASO.Id = MD.Obiekt_Id


            
LEFT JOIN ModelDanychContainer.StanyMagazynowe STAN ON STAN.Asortyment_Id=ASO.Id
LEFT JOIN ModelDanychContainer.Magazyny MAG ON MAG.Id=STAN.Magazyn_Id
INNER JOIN ModelDanychContainer.Vendero_Synch AS VEN ON VEN.Vendero_AsortymentSynch_Asortyment_Id=ASO.Id
ORDER BY ASO.Symbol;

Link to postu
×
×
  • Dodaj nową pozycję...