Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno SQL Dotaz v Accessu

Zdravim, mam dotaz k SQL dotazum v Accesu.

Mam tabulku a napsal jsem nasledujici sql query

SELECT		Exposure_Class,
		Tranche_Type_Code,
		SUM(tranche_exposure)/1000+SUM(accrued_fees)/1000 AS Exposure_KCZK
FROM 	sm_kb_local_ratio
WHERE 	correction_flag = '1'
		AND date_valid = '2010-12-31'
		AND (inter_company ='F' OR inter_company IS NULL)
		AND default_indicator ='T' --- proč nepoužije custommer_evaluation?
		AND import_source = 'BCE'
GROUP BY tranche_exposure, accrued_fees
;

Hazi mi to chybu "you tried to execute a query that does not include the specified expression as part of an aggregate function"

Mam takovy pocit ze to je tim ze nektere pole v tranchee exposure a accrued fees jsou prazdne (ne nula).

Muze to byt tim? Pripadne EXISTUJE nejaka funkce v Accesu aby vzala napr IFNULL=0? nebo jak toto resit na urovni vystupu (nemuzu modifikovat zdrojova data)?

Diky

Předmět Autor Datum
V Accessu sice nepracuji, ale dle mého názoru nejsou v souladu řádky : SUM(tranche_exposure)/1000+S…
hynajs 08.02.2011 10:48
hynajs
Ahoj, diky za radu, bohuzel to nepomohlo: potreboval bych nejaky takovyto vystup: Tj strucne receno…
Novacek22 08.02.2011 11:31
Novacek22
V GROUP BY majú byť tie polia, podľa ktorých chceš zoskupovať: GROUP BY Exposure_Class, Tranche_Typ…
los 08.02.2011 11:40
los
Keď zoskupuješ dáta pomocou GROUP BY, tak polia, ktoré vyberáš, musia byť buď tie, podľa ktorých zos…
los 08.02.2011 11:19
los
diky moc za vysvetleni, uz jsem to pochopil a uz to funguje poslední
Novacek22 08.02.2011 12:01
Novacek22

V Accessu sice nepracuji, ale dle mého názoru nejsou v souladu řádky :

SUM(tranche_exposure)/1000+SUM(accrued_fees)/1000 AS Exposure_KCZK
...
GROUP BY tranche_exposure, accrued_fees

Nevím přesně ,co chceš groupovat. Zkus zadat na zkoušku :

GROUP BY Exposure_KCZK

Ahoj, diky za radu, bohuzel to nepomohlo:

potreboval bych nejaky takovyto vystup:
Tj strucne receno excelove subtotaly podle class a type a k tomu vzdy odpovidajici sumy KCZK a KEUR pro dany type a class

Exposure_Class Tranche_Type_Code Exposure_KCZK Exposure_KEUR
3 1 21 545 461
7 1 13 293 570
7 4 519 20
8 1 11 161 3 797
13 1 2 151 644 235 564
13 2 15 124 436
13 4 110 719 11 201
14 1 1111 857 524 213 439
14 2 23 190 5 913
14 4 117 189 23 829
14 5 1 605 1 580
18 1 2 632 510 12 299
18 2 1 125 221

Keď zoskupuješ dáta pomocou GROUP BY, tak polia, ktoré vyberáš, musia byť buď tie, podľa ktorých zoskupuješ, alebo musia byť v agregačnej funkcii (SUM, MAX, ...). Je to tak preto, lebo hodnota poľa v rámci jednej skupiny nadobúda rôzne hodnoty (ak práve podľa toho poľa nezoskupuješ), takže sa nedá vybrať konkrétna hodnota takého poľa.

V tvojom prípade vyberáš polia Exposure_Class a Tranche_Type_Code, podľa ktorých ale nezoskupuješ, takže nie je možné určiť konkrétnu hodnotu, ktorú by to malo vrátiť.

Zpět do poradny Odpovědět na původní otázku Nahoru