Portál AbcLinuxu, 10. května 2025 13:59

Dotaz: MySQL Dotaz

22.5.2007 22:56 Kokotoni
MySQL Dotaz
Přečteno: 144×
Odpovědět | Admin
mám dvě tabulky: Spis(ID_Spis,Klient) a Data(ID_Data,ID_Spis,Typ,Datum,Castka). Ke každému záznamu v tabulce Spis je minimálně jeden záznam v Data. Potřebuji zjisit sumu v poli Castka pro Spis.Klient = 1 a Data.Typ = 2 {SELECT SUM(CASE WHEN Data.Typ = 2 THEN Data.Castka ELSE 0 END) AS Castka2 FROM Spis INNER JOIN Data ON Spis.ID_Spis = Data.ID_Spis WHERE Spis.Klient = 1;} Nyní ale potřebuji sečíst pro Spis.Klient = 1 vždy jen jeden (s nejnižším ID_Data) záznam z tabulky Data pro každý Spis (tj. v tabulce Data může být více záznamů s ID_Spis = 1, mě ale pro součet zajímá jen jeden). Jde to nějak udělat?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.5.2007 23:33 miro | skóre: 19 | blog: miro
Rozbalit Rozbalit vše Re: MySQL Dotaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
skus sa pohrat so sort by ID_DATA a potom group by ... (nieco co to zgrupuje na jediny riadok, ten prvy)
23.5.2007 08:38 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL Dotaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi to nebude optimální, ale co třeba takhle:
SELECT SUM(Data.Castka), Spis.Klient
FROM Spis, Data, (SELECT MIN(ID_Data) AS ID_Data, ID_Spis FROM Data GROUP BY ID_Spis) AS D
WHERE Spis.ID_Spis = D.ID_Spis AND Data.ID_Data = D.ID_Data
GROUP BY Spis.Klient
PS: mimochodem, ve vašem dotazu by tagy <pre> taky nebyly na škodu…
23.5.2007 08:48 cronin | skóre: 49
Rozbalit Rozbalit vše Re: MySQL Dotaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skus sa opytat na http://forum.dbsvet.cz/. Tu je to off-topic.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.