pole ako vysledok select-u   otázka

SQL

Zdravim.

Mam dve tabulky, prvu predf_hlavna a druhu predf_uhrady.

Relacia 1:N. Prva tabulka obsahuje predfaktury a druha uhrady k tymto predfakturam.

Ide o MS SQL 2008

Potrebujem select zobrazujuci vsetky zaznamy z tabulky preft_hlavna a sumu uhrad k jednotlivym zaznamom z tabulky predf_uhrady. To nie je problem. Ale chcem pridat este pole zostatok, co je rozdiel podf.hlavna - uhrada.

Nieco take.

select *, 
(select SUM(suma) from predf_uhrady where predf_uhrady.c_predf = predf_hlavna.c_predf) as uhrada
 ,(predf_hlavna.suma - uhrada) as zostatok from predf_hlavna

A toto uz nefunguje. Da sa to nejako jednoducho? Vedel by som naplnit novu docasnu tabulku vysledkom obsahujucim aj sumu aj uhrada a potom pridat rozdiel suma - uhrada. Len ci nie je nieco jednoduchsie.

K.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak například jednoduše výraz pro načtení uhrada zopakujete do výrazu pro zostatok

select *, 
(select SUM(suma) from predf_uhrady where predf_uhrady.c_predf = predf_hlavna.c_predf) as uhrada
 ,(predf_hlavna.suma - (select SUM(suma) from predf_uhrady where predf_uhrady.c_predf = predf_hlavna.c_predf)) as zostatok from predf_hlavna

nebo váš select dáte do podselectu a v nadřazeným selectu uděláte výraz pro zostatok

select *, suma - uhrada as zostatok 
  from (select *, 
	      (select SUM(suma) from predf_uhrady where predf_uhrady.c_predf = predf_hlavna.c_predf) as uhrada
	         from predf_hlavna
	   ) Sub

určitě by se dalo vymyslet i dalších x možností jak dotaz napsat, naštudujte si lépe dotazování v SQL.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback