Jak uzyskać wynik odejmowania w przeciwieństwie do sum()

Problemy związane z tworzeniem i zarządzaniem programami bazo-danowymi.
Regulamin działu


Zadając pytania dotyczące baz danych należy podawać szczegółowe informacje o bazie danych nad którą się pracuje, czyli:

  • Rodzaj serwera bazodanowego: MySql, MSSQL, Oracle itp.
  • Wersja bazy danych
  • Technologia bazodanowa używana w programie: ADO, DbExpress, InterBase
  • Komponenty użyte do zestawienia połączenia: ADOConnection, SqlConnection
  • Sposób zestawienia komponentów bazodanowych np. DataSet - DataSource - DbGrid lub DataSet - DataSetProvider - ClientDataSet - DataSource - DbGrid
  • Jeżeli używane były biblioteki innych firm niż Borland, CodeGeer i Embarcadero proszę podać ich nazwy, numer wersji i adres źródła.

Jak uzyskać wynik odejmowania w przeciwieństwie do sum()

Nowy postprzez duf » środa, 13 marca 2013, 11:25

mam takie zapytanie, które sumuje poszczególne rekordy z tabeli:
Kod: Zaznacz cały
SELECT KOD,KRAJ,SUM(WARTOSC),SUM(WAGA),SUM(ILOSC) FROM TEMP GROUP BY KOD,KRAJ

Czy możliwe jest uzyskanie różnicy podczas grupowania? Dzięki.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Jak uzyskać wynik odejmowania w przeciwieństwie do sum()

Nowy postprzez Mironas » środa, 13 marca 2013, 11:32

Nie, ponieważ przy odejmowaniu ważna jest kolejność liczb (rekordów). 10-5 to co innego niż 5-10.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 449
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 21
Otrzymał podziękowań: 63
System operacyjny: Windows 10
Kompilator: C++Builder 10.2 Tokyo
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Jak uzyskać wynik odejmowania w przeciwieństwie do sum()

Nowy postprzez duf » środa, 13 marca 2013, 11:46

To jedyną metodą jest odejmowanie na "piechotę"? Jak to ugryźć? Może tak, mam dwie tablice. Jedna ma wartości:
kod wartosc kraj
100.......10.PL
200........5.PL
300.....112.PL

Druga tablica:
kod wartosc kraj
100.........3 PL
200.........5 DE

I teraz od wartości '10' z pierwszej tablicy o kodzie 100 chcę odjąć wartość '3' z drugiej tablicy bo mają te same kody i kraj. Czy przeprowadzić zwykłe porównywanie każdy rekord z pierwszej tablicy z każdym rekordem drugiej? Bo to jest na "piechotę" :D
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Jak uzyskać wynik odejmowania w przeciwieństwie do sum()

Nowy postprzez Mironas » środa, 13 marca 2013, 12:10

Np tak
Kod: Zaznacz cały
select A.WARTOSC - B.WARTOSC as ROZNICA
from
  TABELAA A,
  TABELAB B
where
  B.ID = A.ID


W warunku musisz uwzględnić jeszcze kraj, bo już w to nie wnikałem

Za ten post autor Mironas otrzymał podziękowanie od:
duf
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 449
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 21
Otrzymał podziękowań: 63
System operacyjny: Windows 10
Kompilator: C++Builder 10.2 Tokyo
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Jak uzyskać wynik odejmowania w przeciwieństwie do sum()

Nowy postprzez duf » środa, 13 marca 2013, 12:18

Mironas napisał(a):Np tak
Kod: Zaznacz cały
select A.WARTOSC - B.WARTOSC as ROZNICA
from
  TABELAA A,
  TABELAB B
where
  B.ID = A.ID


W warunku musisz uwzględnić jeszcze kraj, bo już w to nie wnikałem

Dzięki. Muszę to ogarnąć organoleptycznie. Jeżeli dobrze rozumiem to ROZNICA będzie przenosiła wartość. Ale muszę to zweryfikować w swoim środowisku.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Bazy danych

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron