Forum Delphi.cz

Databáze => MS SQL => Téma založeno: Hugo 31-07-2016, 22:27:45

Název: Jak napsat dotaz SELECT s přidáním sloupce COUNT do výsledku
Přispěvatel: Hugo 31-07-2016, 22:27:45
Zdravím, potřebuji zrychlit práci s SQL. Mám dvě tabulky například:

ZAZNAMY
  ID, int
  POPIS, varchar
  ID_VYTVORIL, int
  DATUM_ZMENY, int
  ....
END

HISTORIE
  ID, int
  ID_ZAZNAM, int
  ID_TYP, int
  POPIS, varchar
  DATUM
END

Při každé operaci s položkou v ZAZNAMY se vytvoří záznam v tabulce HISTORIE

Potřebuji vypsat všechny záznamy z tabulky ZAZNAMY a doplnit je o sloupec COUNT (který bude obsahovat počet záznamů v tabulce HISTORIE dle nějakého kritéria).

dnes to řeším v programu takto:

SELECT * FROM ZAZNAMY

procházím jednotlivé výsledky v cyklu a u každé položky se ptám

SELECT COUNT(*) from HISTORIE where  ID_ZAZNAM=XX AND DATUM>YY

Je to zdlouhavé, potřeboval bych k výsledkům SELECT * FROM ZAZNAMY nějak JOIN sloupec COUNT a v něm definovat co sečíst pro dané ID_ZAZNAM s podmínkou DATUM nebo jinou.
Název: Re:Jak napsat dotaz SELECT s přidáním sloupce COUNT do výsledku
Přispěvatel: Hugo 31-07-2016, 23:05:55
Omlouvám se, ale už jsem na to asi přišel. Měl jsem v tom zápisu chybu a nefungovalo mi to.

select ZAZNAMY.*, (select count(*) from HISTORIE where ID_ZAZNAM=ZAZNAMY.ID AND DATUM>YY) AS HISTORIE_C FROM ZAZNAMY

Doufám že je to tak v pořádku, moc se v použití JOIN nevyznám a tady to šlo bez něj.