[SQL] Zmiana wartości wyniku zapytania

Witajcie!

 

Zacząłem niedawno swoją “przygodę” z SQL (dokładniej - T-SQL) i głowię się nad jedną rzeczą. Działam na bazie danych systemu ERP, z którego chcę wyciągnąć w zasadzie 2 rzeczy - numer konta i jego opis, a następnie dołączyć trzecią kolumnę, w której byłby uogólniony opis (np. - konto 1, wartość zakupu, zakupy). Wszystkie z tych danych mam w dwóch tabelach, co łączę w taki sposób:

 

SELECT

	kp_konto,

	kp_ben ,

	kpr_rubrik

FROM 

	monitor.KONTOPLAN

LEFT OUTER JOIN 

	monitor.kplan_rubrik ON kontoplan.kpr_id = kplan_rubrik.kpr_id

ORDER BY kp_konto ASC

 

Gdzie kp_konto to numer konta, kp_ben to jego nazwa, a w kolumnie kpr_rubrik jest opis konta.

 

Problem polega na tym, że te opisy wprawdzie są przydatne, ale są zbyt dokładne - chcę je jeszcze bardziej uogólnić. I tu pojawia się pytanie - czy jest sposób, abym wypluwając dane z takiego zapytania mógł - bezpośrednio w kwerendzie - w jakiś sposób zamienić wartości końcowe?

Witam,

 

A funkcje działające na string-ach Ci nie wystarczają albo CASE/WHEN?

 

Pozdrawiam,

 

mr-owl

O ile CASE/WHEN coś mi mówi i spróbuję coś z tym zdziałać, o tyle pierwsza podpowiedź nie mówi mi nic i byłbym wdzięczny za małe objaśnienie, ewentualnie jakiś sensowny link z dobrym tłumaczeniem :slight_smile:

Nie powinno się robić zbyt ogólnych zapytań bo jak się pomylisz to sobie nadpiszesz jakaś wartość w bazie i później będzie potrzebny backup.Poza tym jak masz duza bazę danych to długie zapytania obniżają wydajność i baza zaczyna mulic.

@eskimosek - nie mam uprawnień do zapisu danych w bazie (np. przez UPDATE czy REPLACE), więc to mi nie grozi.

 

Zapytanie samo w sobie nie jest ogólne, wypluwa mi dwie rzeczy tylko - listę kont i ich nazwy. Kropka. Teraz potrzebuję podłączyć w jakiś sposób trzecią informację - opis - grupujący konta na poszczególne rodzaje (np. 1, 4, 6 - zakupy, 2, 5, 7 - sprzedaż, 3, 8, 9 - wypłaty). O to mi się rozchodzi. Spróbuję z WHEN coś podziałać.

Do łączenia danych z rożnych kolumn i wyświetlania je w stringu może być pomocny CONCAT.http://www.mysqltutorial.org/sql-concat-in-mysql.aspx

 

Z tego co piszesz to może wystarczy Tobie wyrażenie GROUP BY?