SELECT s použitím předchozího záznamu   otázka

SQL

Zdravím,

mám tabulku ve jteré jsou uvedeny stavy vodoměrů k jednotlivým datumům.

ID DatumOdectu Stav

1 12.1.2010 0,15

2 14.1.2011 14,20

3 5.1.2012 25,30

.

.

.

Potřebuji vytvořit dotaz, který mi vrátí hodnotu vypočítanou na základě předchozího řádku, tzn.

Spotreba

14,05

11,10

Můžete mi, prosím, poradit, jak mám postupovat?

Díky

M.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Naprosto nesmyslně položený dotaz nebo já jej alespoň vůbec nechápu. Když už chcete využít služeb fóra,tak se,prosím,naučte řádně pokládat dotazy,dodávat potřebné informace.Další věcí je,že jste jej zadal do špatné sekce.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Nechápu, co je na tom nesmyslného, a už vůbec nevidím problém s vybráním fóra SQL, T-SQL, když chci vytvořit SELECT na MSSQL.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Za tu sekci se omlouvám,spletl jsem se :)

Nicméně opravdu zadání nechápu( a nejsem jediný)..oč Vám jde? Co má být výstupem? Z Vašeho příkladu je jako výstup uvedena dvojice čísel je naprosto nevypovídající...

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

Potřebuji zobrazit spotřebu mezi jednotlivými odečty. Tzn. rozdíl mezi stavem 12.1.2010 a 14.1.2011, rozdíl mezi stavem 14.1.2011 a 5.1.2012 atd.

Snad jsem to trochu osvětlil :)

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

Dobrý den,

vytvořte si funkci Spotreba.

CREATE FUNCTION Spotreba 
(
	@Datum datetime
	,@Stav float
)
RETURNS float
AS
BEGIN
	DECLARE @Spotreba float

	SELECT @Spotreba = (SELECT TOP 1 (@Stav - Stav) 
						FROM dbo.OdecetVodomeru 
						where DatumOdectu < @Datum
						order by DatumOdectu desc)
	RETURN isnull(@Spotreba,0.0)

END

GO

Tuto funkci pak volejte v příslušném dotazu.

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