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?
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
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ć.