• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

operacje matematyczne pomiedzy kolejnymi wierszami, takie jak dodawanie, odejmowanie, ...

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,234 wizyt
pytanie zadane 30 stycznia 2020 w SQL, bazy danych przez antyprogramista Bywalec (2,120 p.)
edycja 30 stycznia 2020 przez antyprogramista

Witajcie eksperci SQL!

Mam do was pytanie, znam sposob na operacje matematyczne pomiedzy aktualnymi kolumnami, takie jak dodawanie, odejmowanie, ...

Pytanie dotyczy tworzenia operacji pomiedzy wierszami.

Istotne jest tez uzaleznienie tej operacji od znaku wskazujacego dla kazdej danej, jaka ma byc przeprowadzona operacja.

Tak jak w banku, ale z ta roznica, ze w jednej tabeli sa rozne typy zmiennych.

Gdy chodzi o dodawanie/odejmowania, to mozna by wykonac 3 zapytania:

1. sumowac wiersze ze znakiem dodawania

2. sumowac wiersze ze znakiem odejmowania

3. sumy z tych dwoch operacji odjac

Ale nawet to jest zbyt dluga droga, da sie szybciej, efektywniej, prosciej?

Jednym z rozwiazan, bylo by tworzenie wartosci od razu ze znakiem, ale uprzedzam, ze to jest zalezne od kontekstu obliczenia

Dlatego dla banku kredyt to dochod, a dla kredytobiorcy kredyt to rozchod.

Dlatego  chyba musialbym tworzyc kolumny w zaleznosci od kontekstu, np kolumny bank i kredytobiorca zawieralyby rozne znaki,

ale jestem otwarty na rozwizania, piwo sie chlodzi dla kolegi, ktory pomoze popchnac moje przemyslenia do przodu ...

 

Przyklad

nazwa operacja wartosc
splata raty kredytu - 10
dochod + 120

 itd

Bede wdzieczny za rozjasnienie laikowi ;)

 

 

komentarz 30 stycznia 2020 przez Tomek Sochacki Ekspert (227,490 p.)
A nie lepiej takie operacje zrobic juz w apce i tylko dostarczyc jej dane z bazy?
komentarz 30 stycznia 2020 przez antyprogramista Bywalec (2,120 p.)
Dziekuje za komentarz, wolalbym uniknac backendu, gdyz to czysta matematyka a nie implementacja warunku.
komentarz 30 stycznia 2020 przez Tomek Sochacki Ekspert (227,490 p.)
Ok, ale backend wg mnie latwiej otestowac jednostkowo itp. A tu bedzie gorzej... ale to taki offtopic, z sql nie jestem mocny wiec nie pomoge, ale raczej najczesciej spotykam sie z wrzucaniem takich operacji do apki.
komentarz 30 stycznia 2020 przez antyprogramista Bywalec (2,120 p.)
Masz racje, ze robienie systemu na bazie danych, np DB2 tez w mojej opinii jest ryzykowne.

Tutaj jednak jest maly skrypt potrzebny, ktory bedzie w stanie sumowac w okreslonym zakresie dat rozne dane w zaleznosci od kontekstu.

Wszystkie dane sa w bazie, teraz tylko trzeba stworzyc zapytanie, ktore pozwoli zsumowac wedle znaku.

1 odpowiedź

+2 głosów
odpowiedź 30 stycznia 2020 przez SzkolnyAdmin Szeryf (89,570 p.)

1. Sumowanie kolumny w wierszach wierszy ze znakiem "+".

SELECT SUM(wartosc) FROM tabela WHERE operacja = "+"

2. Sumowanie kolumny wierszach ze znakiem "-".

SELECT SUM(wartosc) FROM tabela WHERE operacja = "-"

3. Wyznaczanie różnicy.

SELECT DISTINCT (SELECT SUM(wartosc) FROM tabela WHERE operacja = "+") - (SELECT SUM(wartosc) FROM tabela WHERE operacja = "-") FROM tabela

DISTINCT po to, abyś otrzymał jedną wartość (przetestuj sobie bez tej klauzuli i zobacz co się dzieje).

komentarz 30 stycznia 2020 przez antyprogramista Bywalec (2,120 p.)

Dziekuje za ta metode,

Zastanawiam sie nad innym rozwiazaniem, w jednej linicje z mnozeniem, to szkic zapytania:
 

Select SUM( OPERACJA * WARTOSC ) From Table



gdzie operacja moze miec 2 wartosci:

-1

+1

 

Co o tym myslisz?

komentarz 30 stycznia 2020 przez SzkolnyAdmin Szeryf (89,570 p.)
Też działa. Teraz tylko porównać wydajność, jeśli to jakaś duża baza.
komentarz 30 stycznia 2020 przez antyprogramista Bywalec (2,120 p.)
Jestem w trakcie, dam znac, to bedzie jeden z moich opensourcowych projektow, do obliczania danych w zaleznosci od czasu, taki 'kalkulator czasoprzestrzenny'.

Podobne pytania

0 głosów
3 odpowiedzi 3,516 wizyt
0 głosów
0 odpowiedzi 152 wizyt
–1 głos
3 odpowiedzi 1,094 wizyt
pytanie zadane 30 maja 2021 w PHP przez KFC Użytkownik (610 p.)

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...