• 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, ...

Object Storage Arubacloud
0 głosów
1,013 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,510 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,510 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 (86,360 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 (86,360 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,136 wizyt
0 głosów
0 odpowiedzi 99 wizyt
–1 głos
3 odpowiedzi 665 wizyt
pytanie zadane 30 maja 2021 w PHP przez KFC Użytkownik (610 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...