Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Feldnamen zusammensetzen (https://www.delphipraxis.net/216302-feldnamen-zusammensetzen.html)

Ykcim 6. Dez 2024 13:19

Datenbank: MsSql • Version: 14 • Zugriff über: FireDac

Feldnamen zusammensetzen
 
Hallo Zusammen,

ist es möglich, Feldnamen in einer Abfrage zusammen zu setzen?

Ich habe eine Tabelle mit Artikeln

ArtikelNr.......MWST
471155443........2

und eine weitere Tabelle mit:
MWST_1......MWST_2......MWST_3
..7................19......................21

Ich möchte also in der Abfrage die 19% MWST erhalten und müsste in der Abfrage das Feld MWST_ + die 2 aus dem Feld MWST kombinieren. Frei nach dem Motto:

Delphi-Quellcode:
select 'MWST_' + MWST from Tabelle
where MWST = '2'
Geht so etwas und wenn ja wie?

Vielen Dank
Patrick

Uwe Raabe 6. Dez 2024 13:32

AW: Feldnamen zusammensetzen
 
Google mal nach JOIN

mkinzler 6. Dez 2024 13:37

AW: Feldnamen zusammensetzen
 
So oder ähnlich sollte es klappen:
SQL-Code:
select
  a.ArtikelNr, a. ...,
  case a.MWST
    when 1 then m.MWST_1
    when 2 then m.MWST_2
    when 3 then m.MWST_3
   ...
  end as MWST
from
  Artikel a
    join MWST m
where
  a.ArtikelNr = ...;

Ykcim 6. Dez 2024 13:41

AW: Feldnamen zusammensetzen
 
STARK! VIELEN DANK!

Ich habe es jetzt so gelöst:
Delphi-Quellcode:
SELECT a.zynrefkl, a.ean___nr, a.afg_oms1, a.afg_oms2, a.pr_excl_,
CASE pg.btw_____
      WHEN 1 THEN mw.btwval_1
      WHEN 2 THEN mw.btwval_2
      WHEN 3 THEN mw.btwval_3
      WHEN 4 THEN mw.btwval_4
      WHEN 5 THEN mw.btwval_5 END AS MWST
FROM afgart__ a
LEFT JOIN afgprd__ pg ON pg.prkl_ref = a.prkl_ref
LEFT JOIN btwsys__ mw ON mw.active__ = 'y'
WHERE a.kla__ref = '047011'
Vielen Dank
Patrick

TigerLilly 6. Dez 2024 14:47

AW: Feldnamen zusammensetzen
 
Du kannst auch dynamisch SQL erzeugen + ausführen:

Code:
DECLARE @sqlCommand varchar(1000)
DECLARE @columnList varchar(75)
DECLARE @city varchar(75)

SET @columnList = 'AddressID, AddressLine1, City'
SET @city = '''London'''
SET @sqlCommand = 'SELECT ' + @columnList + ' FROM Person.Address WHERE City = ' + @city

EXEC (@sqlCommand)
Siehe auch hier

https://www.mssqltips.com/sqlservert...in-sql-server/
https://learn.microsoft.com/de-de/sq...l-server-ver16

Aber ich glaube, du hast einen Designfehler, so wie du das aufbaust. Das Thema ist eigentlich eines, das man mit Foreign Keys und JOINS löst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz