[SQLite] Problem z bazą / danymi w pliku

[SQLite] Problem z bazą / danymi w pliku
Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

Mam taki problem - gdy ładuję dane z CSV do bazy (pliku) SQLite takimi komendami:

Kopiuj
DELETE FROM sales;
.mode csv
.import path2/sales.csv sales_tmp
INSERT INTO sales SELECT * FROM sales_tmp;
DROP TABLE IF EXISTS sales_tmp;
VACUUM;
.quit

Wszystko przebiega poprawnie, ale gdy próbuję prostym zapytaniem pobrać sumę sprzedaży dla danego miesiąca (czy to w command line, czy w jakimś narzędziu do SQLite) to dane się nie zgadzają. Co ciekawe - kiedy wyeksportuję to zapytanie do CSV to już dane są ok. Z czego to może wynikać? Bo nie mam pomysłu...

abrakadaber
abrakadaber
  • Rejestracja:prawie 13 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
1

z tego, że masz zły decimal separator w csv i importuje Ci liczby nie jako liczby ale jako tekst a przy sumowaniu odrzuca to co po kropce/przecinku


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

Jak to powinno być ustawione? Kropka?

edytowany 1x, ostatnio: Qlikeers
abrakadaber
abrakadaber
  • Rejestracja:prawie 13 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
1

tak


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

Dzięki!

Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

A jeszcze dopytam, bo faktycznie importuje się teraz poprawnie - jest ok.
A da się tak zrobić, żeby pola liczbowe (już po imporcie) w pliku SQLite miały jednak przecinki w miejscach dziesiętnych?

abrakadaber
abrakadaber
  • Rejestracja:prawie 13 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
0

baza nie przechowuje wartości liczbowych jako stringi tylko jako liczby. Jak one są wyświetlane - co jest separatorem dziesiętnym, tysięcznym itp - zależy od tego w czym te dane wyświetlasz


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

Ok, rozumiem. W takim razie jak najlepiej załatwić sprawę "kropek" pobierając dane przez ODBC do Excela? Tam, gdzie są liczby z miejscami po przecinku robi zmienia mi na pole tekstowe. Systemowo używam przecinków (domyślne ustawienia).

abrakadaber
abrakadaber
  • Rejestracja:prawie 13 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
0

najprościej tak. Chociaż z drugiej strony sterownik ODBC może mieć możliwość ustawienia separatora dziesiętnego - musisz sprawdzić u siebie


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

No właśnie o to chodzi, że ściągając do np. Excela poprzez ODBC robi mi kropki w miejscach dziesiętnych i automatycznie w komórce powstaje tekst. Chciałbym, żeby to były pola w całości liczbowe - czyli z przecinkami. Szukam w sterowniku, ale dość prosty jest i nie widzę :(

Qlikeers
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:27
0

Macie może jakiś pomysł? Bo walczę z tym już sporo czasu i nie znalazłem rozwiązania...
Jak ściągam przez ODBC do Excela to ładuje mi kropki zamiast przecinków i co za tym idzie kolumny tekstowe. Tak samo w Accessie...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.