Połączenie CSV - Array |
Połączenie CSV - Array |
17.02.2020, 15:37:38
Post
#1
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 0 Dołączył: 15.11.2011 Ostrzeżenie: (0%) |
Dzień dobry cześć i czołem,
Mam sobie dwa pliki CSV - duże ( mają sporo danych ) W jednym pliku csv kontrahent id_kontrahent;nazwa_kontrahenta;nazwa_handlowca Zaś w drugim mam sprzedaż - id kontrahenta powiela się - każdego dnia plik rośnie ze względu na sprzedaż produktu dla kontrahenta id_kontrahenta;data;netto;brutto Teraz chciałbym uzyskać sumę sprzedaży dla danego handlowca vs kontrahent ( każdy kontrahent ma przydzielonego handlowca ). Czyli handlowiec: Kowalski , Firma: XYZ, Rok: 2020, Sprzedaż: 1000 tys. Na początku zrobiłem:
Ale już na tym etapie danych jest tyle że wywala błąd Memory , czy jest jakiś sposób na szybsze połączenie Array ? Wiem że jest array_merge() ale przy csv wywala mi błąd Argument #1 is not an array in ... Używam class do CSV new CsvIterator. |
|
|
17.02.2020, 16:15:29
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Troche glupota jest robienie tablic z duzych plikow. Po drugie co to za f. FORACH ?
Powód edycji: [nospor]: no nie wstawiaj jako cytat calego posta. Jaki tego sens??
-------------------- |
|
|
17.02.2020, 16:35:42
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Ten foeach w foreach jest totalnie bez sensu.
Najpierw wczytaj sobie do tablicy ten pierwszy CSV z kontrahentami i handlowcami. Zbuduj sobie z niego ladna tablica by miec tam tablice po czym bedziesz grupowac Nastepnie zacznij czytaj drugi CSV, LINIA po LINII a nie caly od razu. I tak linia po linii wypelniaj sobie te zbudowana wczesniej tablice o odpowiednie SUMY. I juz. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
17.02.2020, 16:56:42
Post
#4
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 0 Dołączył: 15.11.2011 Ostrzeżenie: (0%) |
Ok zrobiłem to trochę inaczej dla ułatwienia i pobrałem sobie inaczej dane do CSV teraz mam jeden plik wynikowy:
nazwa_kontrahenta;handlowiec;data;netto;brutto - oczywiscie nazwa kontrahenta mi sie pobiera wielokrotnie np: AAA;KTOS;2007;111;1123 AAA;KTOS;2008;111;1123 itd. Ale mam teraz inny problem nie wiem jak złączyć firmę kwoty i daty. Końcowy raport ma wyglądać tak Handlowiec: KTOS FIRMA: AAA Dzienny: rok 2017: 55zł Rok 2018: 66zł Rok 2019: 99zł Miesięczny: ..... Roczny: ..... Obrót dzienny w dniu 17 lutego pokazuje obrót z 17 lutego w tym roku oraz w poprzenich 2016, 2017, 2018 itd. W ujęciu miesięcznym pokazuje obrót od 1 lutego do 17 lutego w tym roku oraz w poprzednich W ujęciu rocznym pokazuje obrót od 1 stycznia do 17 lutego w tym roku oraz w poprzednich. |
|
|
18.02.2020, 09:07:04
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
zaimportuj sobie csv do bazy sqlite i mozesz sobie dzialac.
|
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 14:13 |