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 ucp.php?i=ucp_profile&mode=reg_details
Tutaj znajdziesz zgłaszane problemy oraz ich rozwiązania. Proszę obowiązkowo zapoznać się z podwieszonym poradnikiem "Jak prawidłowo zgłosić problem?".
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?
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
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ć.
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ą
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ą
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;
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
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
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)
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