Strona 4 z 5

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

: 06 paź 2023, 11:01
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?

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

: 06 paź 2023, 12:40
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ć.

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

: 08 paź 2023, 12:52
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ą

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

: 08 paź 2023, 15:09
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;

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

: 23 paź 2023, 18:52
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

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

: 25 paź 2023, 13:31
autor: PhotoSoft
Proszę sobie sprawdzić zapytania.

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

: 25 paź 2023, 16:27
autor: Szady
Zapytania działają, z tym że chodziło o cenę zakupu. Proszę o ewentualną zmianę bądź edycję. Pozdrawiam.

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

: 26 paź 2023, 09:33
autor: PhotoSoft
Poprawiłem, proszę sprawdzić.

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

: 03 lis 2023, 13:21
autor: Szady
Jeżeli to możliwe proszę jeszcze o dopisanie EAN. Dziękuję.

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

: 06 lis 2023, 09:42
autor: PhotoSoft
Poprawiłem, proszę sprawdzić.

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

: 26 kwie 2024, 09:22
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)

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

: 26 kwie 2024, 10:18
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