Od teraz można zarejestrować lub zalogować się na forum poprzez konto Facebook albo Google :) Jeśli zalogujesz się w ten sposób i na forum jest już utworzone konto o takim samym adresie e-mail, wówczas oba konta zostaną ze sobą powiązane. Czyli zachowane zostaną wszystkie ustawienia i posty.

Jeśli adresy e-mail będą różne, wówczas zostanie założone nowe czyste konto. W razie czego można zmienić w ustawieniach istniejącego konta adres na inny :arrow: ucp.php?i=ucp_profile&mode=reg_details

Ten komunikat można zamknąć w prawy górnym rogu.

[Transakcje] Własne zestawienia danych - wątek zbiorczy

Tutaj znajdziesz zgłaszane problemy oraz ich rozwiązania. Proszę obowiązkowo zapoznać się z podwieszonym poradnikiem "Jak prawidłowo zgłosić problem?".
robi1976
Posty: 594
Rejestracja: 27 gru 2012, 19:58
Lokalizacja: Radom
Podziękował: 11 razy
Otrzymał podziękowań: 4 razy
Kontakt:

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: robi1976 »

tomazik123 pisze: 04 paź 2023, 07:55 Sprecyzuj bardziej swoje zapytanie. Czy dokonali ponownego zakupu produktu x, produktu innego niż x, czy obojętnie jakiego i czy dokonali zakupu w danym miesiącu czy dokonali zakupu po dacie zakupu produktu x?

Jaki % klientów, którzy kupili produkt x[EAN] dokonali kolejnego dowolnego zakupu po dacie zakupu produktu x?
tomazik123
Posty: 287
Rejestracja: 23 wrz 2018, 16:14
Podziękował: 10 razy
Otrzymał podziękowań: 8 razy

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: tomazik123 »

Nie mam za bardzo jak przetestować bo my sprzedajemy pojedyncze sztuki, ale spróbuj (przyjąłem miesiąc wrzesień):
 

Kod: Zaznacz cały

WITH wynikpierwszy AS (
    SELECT ID_KLIENT, DATA_ZAKUPU 
    FROM TRANSAKCJE 
    WHERE EAN = 'tutajwpiszean' AND DATA_ZAKUPU BETWEEN '2023-09-01' and '2023-09-31' and GRUPA_IDS = ''
),
IloscPierwszy AS (
    SELECT COUNT(*) AS Ilosc1 
    FROM wynikpierwszy
),
IloscDrugi AS (
    SELECT COUNT(DISTINCT w.ID_KLIENT) AS Ilosc2
    FROM wynikpierwszy w
    JOIN TRANSAKCJE t ON w.ID_KLIENT = t.ID_KLIENT AND t.DATA_ZAKUPU > w.DATA_ZAKUPU AND GRUPA_IDS = ''
)

SELECT 
    CASE 
        WHEN i1.Ilosc1 = 0 THEN 0
        ELSE (i2.Ilosc2 * 100.0 / i1.Ilosc1) 
    END AS ProcentKlientow
FROM IloscPierwszy i1, IloscDrugi i2;

a jeśli chcesz sobie wyświetlić zestawienie ilości i sumy zakupów dokonanych przez Klientów po zakupie produktu x to zastosuj to zapytanie
 

Kod: Zaznacz cały

WITH wynikpierwszy AS (
    SELECT ID_KLIENT, DATA_ZAKUPU 
    FROM TRANSAKCJE 
    WHERE EAN = 'tutajwpiszEAN' and DATA_ZAKUPU BETWEEN '2023-09-01' and '2023-09-31' and GRUPA_IDS = ''
)

SELECT tk.KL_LOGIN AS Login, 
		SUM(t.ilosc) AS SumaIlosc,
       ROUND(SUM(t.KWOTA), 2) AS Sumakwota
FROM wynikpierwszy w
JOIN TRANSAKCJE t ON w.ID_KLIENT = t.ID_KLIENT AND t.DATA_ZAKUPU > w.DATA_ZAKUPU
JOIN TRANS_KLIENCI tk ON w.ID_KLIENT = tk.ID_KLIENT
GROUP BY tk.KL_LOGIN;
jakby nie działało albo chciałbyś coś dołożyć - daj znać.
KarolinaS
Posty: 3
Rejestracja: 02 maja 2023, 09:10
Podziękował: 0
Otrzymał podziękowań: 0

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: KarolinaS »

Dzień dobry,

Chciałabym prosić o pomoc w edytowaniu skryptu, którym aktualnie się posługuję:

SELECT
   SUBSTRING(data_zakupu FROM 1 FOR 10) as data, COUNT(id_klient) AS klienci, SUM(ilosc) AS sztuk, Round(SUM(kwota),2) AS kwota
FROM
   transakcje AS t
WHERE
   id IN ([ZAZN]) AND grupa_ukryj=0 AND kosz=0
GROUP BY
  data
ORDER BY
  data

W tej wersji skrypt tworzy zestawienie, które podlicza ogólną sprzedaż z podziałem na daty. Potrzebuję dwa inne zestawienia:
1) j.w. ale bez podziału na daty
2) j.w. ale z WYKLUCZENIEM usługi dodatkowej (np. pakowanie na prezent) jako sztukę sprzedażową
tomazik123
Posty: 287
Rejestracja: 23 wrz 2018, 16:14
Podziękował: 10 razy
Otrzymał podziękowań: 8 razy

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: tomazik123 »

Czyli jedno pod drugim?

1) j.w. ale bez podziału na daty
 

Kod: Zaznacz cały

SELECT
   t.data_zakupu, 
   k.KL_LOGIN AS klient,
   t.ilosc AS sztuk, 
   Round((t.kwota),2) AS kwota
FROM
   transakcje AS t
JOIN
   TRANS_KLIENCI AS k ON t.id_klient = k.id_klient
WHERE
   t.id IN ([ZAZN]) AND t.grupa_ukryj=0 AND t.kosz=0
ORDER BY 
   t.data_zakupu ASC;

2) j.w. ale z WYKLUCZENIEM usługi dodatkowej (np. pakowanie na prezent) jako sztukę sprzedażową

Kod: Zaznacz cały

SELECT
   t.data_zakupu, 
   k.KL_LOGIN AS klient,
   t.ilosc AS sztuk, 
   Round((t.kwota),2) AS kwota
FROM
   transakcje AS t
JOIN
   TRANS_KLIENCI AS k ON t.id_klient = k.id_klient
WHERE
   t.id IN ([ZAZN]) AND t.grupa_ukryj=0 AND t.kosz=0 AND USLUGA =''
ORDER BY 
   t.data_zakupu ASC;
Szady
Posty: 15
Rejestracja: 19 wrz 2023, 07:42
Podziękował: 0
Otrzymał podziękowań: 0

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: Szady »

Poproszę o zestawienie:
ID ZAMÓWIENIA ; TYTUŁ AUKCJI ; KOD ; SUMA PRODUKTÓW Z ZAZNACZENIA O TYM SAMYM KODZIE ; CENA ZAKUPU
Z góry dziękuję.
PhotoSoft pisze: 24 paź 2023, 11:17 Nie może być jednocześnie pobrane ID zamówienia i suma produktów wg kodu.
Rozumiem. Poproszę w takim razie bez ID z sumą, oraz bez sumy ale z ID. Coś z tego wymyślę. Dziękuję.

Edycja PhotoSoft

Zestawienie 1:

Kod: Zaznacz cały

SELECT
   tytul_aukcji, t.kod, t.ean, SUM(ilosc) AS suma, cena_zakupu
FROM
   transakcje AS t
LEFT JOIN
   produkty p ON t.kod=p.kod
WHERE
   t.id IN ([ZAZN]) AND grupa_ids='' AND kosz=0
GROUP BY
  t.kod, t.ean, tytul_aukcji, cena_zakupu
Zestawienie 2:

Kod: Zaznacz cały

SELECT
   t.id, tytul_aukcji, t.kod, t.ean, ilosc, cena_zakupu
FROM
   transakcje AS t
LEFT JOIN
   produkty p ON t.kod=p.kod
WHERE
   t.id IN ([ZAZN]) AND grupa_ids='' AND kosz=0
PhotoSoft
Administrator
Posty: 7091
Rejestracja: 14 cze 2011, 13:10
Podziękował: 22 razy
Otrzymał podziękowań: 108 razy
Kontakt:

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: PhotoSoft »

Proszę sobie sprawdzić zapytania.
Pozdrawiam, Marcin
photosoft.allegro(małpa)gmail.com

:arrow: Tutaj pobierzesz najnowszy instalator EU
Szady
Posty: 15
Rejestracja: 19 wrz 2023, 07:42
Podziękował: 0
Otrzymał podziękowań: 0

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: Szady »

Zapytania działają, z tym że chodziło o cenę zakupu. Proszę o ewentualną zmianę bądź edycję. Pozdrawiam.
PhotoSoft
Administrator
Posty: 7091
Rejestracja: 14 cze 2011, 13:10
Podziękował: 22 razy
Otrzymał podziękowań: 108 razy
Kontakt:

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: PhotoSoft »

Poprawiłem, proszę sprawdzić.
Pozdrawiam, Marcin
photosoft.allegro(małpa)gmail.com

:arrow: Tutaj pobierzesz najnowszy instalator EU
Szady
Posty: 15
Rejestracja: 19 wrz 2023, 07:42
Podziękował: 0
Otrzymał podziękowań: 0

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: Szady »

Jeżeli to możliwe proszę jeszcze o dopisanie EAN. Dziękuję.
PhotoSoft
Administrator
Posty: 7091
Rejestracja: 14 cze 2011, 13:10
Podziękował: 22 razy
Otrzymał podziękowań: 108 razy
Kontakt:

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: PhotoSoft »

Poprawiłem, proszę sprawdzić.
Pozdrawiam, Marcin
photosoft.allegro(małpa)gmail.com

:arrow: Tutaj pobierzesz najnowszy instalator EU
KD9
Zaawansowany użytkownik EU
Posty: 1142
Rejestracja: 14 lut 2018, 12:06
Lokalizacja: Gorzów
Podziękował: 4 razy
Otrzymał podziękowań: 18 razy
Kontakt:

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: KD9 »

Zapytanie, które wcześniej mi działało, teraz zawiesza program - co jest z nim nie tak?

select a.id_konto, g.GRUPA, a.id, tytul, kod, liczba, cena_kt, all_cena, data_zakon, EAN, archiwum, id_mag_prod
FROM AUKCJE AS a
left join AUK_ALLEGRO AS aa on aa.nr_aukcji=a.nr_aukcji 
left join AUK_GRUPY AS g on g.id=a.id_grupa
left join AUK_PROD as mag on mag.id_aukcji = a.id


Error writing data to the connection. Error reading data from the connection. FirebirdSql.Data.FirebirdClient.FbException (0x80004005): Error writing data to the connection. Error reading data from the connection. ---> FirebirdSql.Data.Common.IscException: Error writing data to the connection. Error reading data from the connection. ---> System.IO.IOException: Nie można zapisać danych do połączenia transportowego: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta. ---> System.Net.Sockets.SocketException: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta w System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- Koniec śladu stosu wyjątków wewnętrznych --- w System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) w FirebirdSql.Data.Client.Managed.FirebirdNetworkHandlingWrapper.Flush() w FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Rollback() --- Koniec śladu stosu wyjątków wewnętrznych --- w FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Rollback() w FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Dispose2() w FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) w FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) w FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() w FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() w FirebirdSql.Data.FirebirdClient.FbDataReader.Close() w FirebirdSql.Data.FirebirdClient.FbDataReader.Dispose(Boolean disposing) w System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) w System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) w System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) w EasyUploader.Features.Transakcje.FormTransakcjeZestawienie.buttoWykonaj_Click(Object sender, EventArgs e)
PhotoSoft
Administrator
Posty: 7091
Rejestracja: 14 cze 2011, 13:10
Podziękował: 22 razy
Otrzymał podziękowań: 108 razy
Kontakt:

Re: [Transakcje] Własne zestawienia danych - wątek zbiorczy

Post autor: PhotoSoft »

Od teraz w tabeli AUK_ALLEGRO jest nowa kolumna definiująca serwis.
select a.id_konto, g.GRUPA, a.id, tytul, kod, liczba, cena_kt, all_cena, data_zakon, EAN, archiwum, id_mag_prod
FROM AUKCJE AS a
left join AUK_ALLEGRO AS aa on aa.nr_aukcji=a.nr_aukcji AND aa.serwis=a.serwis
left join AUK_GRUPY AS g on g.id=a.id_grupa
left join AUK_PROD as mag on mag.id_aukcji = a.id
Pozdrawiam, Marcin
photosoft.allegro(małpa)gmail.com

:arrow: Tutaj pobierzesz najnowszy instalator EU
ODPOWIEDZ