Natrafiłem na ciężki problem: union i paginacja. Jak to ugryźć?

Albo chociaż jak ustawić skip i take dla union w query builder, bo paginację można manualnie zrobić.

#laravel #php #sql
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@msq: chyba query builder laravela tego nie ogarnia, bo dodając paginację nie zgadza mu się ilość kolumn (dołącza zliczanie rekordów). nigdzie nie znalazłem rozwiązania i po prostu zrobię jako raw query, a tam można dodać limit i ręcznie ustawię paginację. lepszego pomysłu nie wymyśliłem, ale powinno działać.
  • Odpowiedz
Mirki, mam zaćmienie małe w pracy. Przygotowuję raport w Fast Reports. Wyobraźcie sobie, że mam tabelę w której mam użytkowników. Każdy z nich ma swój numer ID, ma tez grupę o ID 1, 2 albo 3. Potrzebuję zapytania, które zsumuje mi ilu jest użytkowników kazdej grupy i wyniki przedstawi w kolejnych kolumnach (sum i group by więc odpada). Potrzebuję jeden wiersz trzema kolumnami.

Kolumna z ID grupy jest not null. Jak tutaj
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zarzucę trochę niepopularnie - o SSIS. Straciłem na to dość dużo czasu, a może komuś pomogę.

Kejs w SSIS:

Jest sequence container, w który sql task odpowiada za truncate tabeli, a później ta sama tabela jest ładowana przez OLEDB Source. Trzeba zrobić tak, żeby transakcja obejmowała cały sequence container i jeżeli wywali się ładowanie danych, wykonywała kontener ponownie od początku. No i oczywiście trzeba użyć checkpointów (bo kontenerów jest w bród).

Rozwiązanie
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@enef: Ale grupowanie dziala tylko z funkcajmi agregujacymi - SUM(), MAX(), AVG() i tak dalej.

Poza tym cochcesz osiagnac robiac UNION dwoch takich samych zapytan?

EDIT: A teraz widze ze to dodwoch roznych tabel :)

Co nie zmienia faktu ze takie 'grupowanie' nei ma wiekszego sensu.
  • Odpowiedz
@zgaS: Tego, że nie warto próbować nie powiedziałem, ambicje są fajne i warto je mieć :) Na pewno życzę ci powodzenia! Ja jednak mam do czynienia z SQL-em (jako admin) i wciąż mi wiedzy mało. Nie można się tego tak po prostu "nauczyć", przestaniesz dopiero jak pójdziesz na emeryturę...
  • Odpowiedz
Zastanawiam się czy nie pomylili się i na końcu nie powinno być "Oracle, MySQL". Wszystko tam działa na platformie Microsoft i dziwne by było gdyby to nie był Microsoft SQL Server. Poszedł bym jednak w stronę T-SQL'a, to chyba najlepsze wyjście. Poświęć też trochę czasu na SQL Server Management Studio (SSMS) i Analysis Service (AS). Przyda się.
  • Odpowiedz
Mirki, jak mam tablicę dwuwymiarową w programie ( #java ), w niej zapisuję sobie porównania parami (może kojarzycie metodę AHP ;) ). Teraz zastanawiam się, jak to przetrzymywać w bazie danych - tworzenie takich samych tabel odpada chyba, jakoś dziwne by to było. Czy może jakoś ją serializować? Nie wiem, jak to ugryźć, żeby było dobrze zrobione.

#programowanie #sql #bazydanych
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@szoorstki: zrobiłbym to tak: tabela rzeczyDoPorownania(rzeczId, nazwa) i tabelę porownania(pierwszaRzeczId, drugaRzeczId, wartoscPorownania)

Ale to takie gdybanie, bo tak naprawdę nie wiem, jaką strukturę danych chcesz zapisać...
  • Odpowiedz
@szoorstki: jeżeli para (pierwszaRzeczId, drugaRzeczId) jest unikalna to może być kluczem głównym w tej tabeli. Nie musisz niczego dodatkowo generować. A co do ilości porównań - dopóki nie liczysz ich w setkach tysięcy to możesz się nie przejmować :)
  • Odpowiedz
Może tutaj ktoś będzie mi w stanie pomóc.

Po przeniesieniu strony (php-fusion) na inny serwer całkowicie posypało się kodowanie, zarówno rzeczy które są w bazie, jak i wszystkich locali które są na serwerze. Siedzę nad tym od kilku godzin i nijak nie mogę tego rozgryźć, na co powinienem zwrócić uwagę?

#php #programowanie #sql
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ghuthek: Ustawienie kodowania tabel w strukturze mysql to jedno, ale jesteś pewien, że przy połączeniu z mysql skrypt wymusza używanie utf-8?
  • Odpowiedz
[ #mysql #sql ]

mirki, z sql zazwyczaj nie mam problemu, ale chyba utkąłem.

w tabeli są dwie kolumny: godzina [time] i liczba [int]. pytanie: jak pogrupować dane po godzinie do dwóch stref czasowych 00:00:00 - 11:00:00 i 12:00:00 - 23:00:00 żeby zliczyć sumę liczb w obu tych zakresach godzin? przyświeca mi idea z podzapytaniem w leftjoin do samej sobie, ale skomplikowanie rozwiązania znacznie przewyższa wartość "projektu" ;)
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tomix: Przy takim przyroście to bez różnicy - każde rozwiązanie będzie dobre - i union i case. Ewentualnie możesz zrobić triggera on insert, który będzie ustawiał z automatu strefę czasową - odpytanie takiego widoku będzie szybsze (o ułamki sekund - mając na uwadze liczbę danych) i przeniesiesz kod na tabele. Ale to bardziej sztuka dla sztuki.

BTW - zamiast rozpisywać drugiego whena w case, możesz zrobić else.
  • Odpowiedz
@sokytsinolop: Pisząc jako SP oszczędzisz latania sobie w te i wewte między serwerem php a bazą danych więc będzie szybciej. Aczkolwiek ja bym jednak dał pole parrent jako typ SET i korzystał z FINDINSET(), dla czwórki ustawisz jako '3,1' i będzie cacy. Chociaż oczywiście to rozwiązanie też nie jest najszybsze bo to w końcu MySQL
  • Odpowiedz
Jakich poleceń używa się w SQL do tworzenia relacji między kolumnami różnych tabel? Macie jakieś dobre źródło? Ew. jakieś dobre narzędzie do automatycznego tworzenia diagramów baz danych, najlepiej lokalnych - .db? Może jakieś funkcje VS?

#sql #programowanie #bazydanych
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach