SQL Basics

With SQL reports all data of the Labordatenbank is available to you. This is a powerful tool to output all data in the desired form. Therefore, the basics are taught in the form of training to unlock this function.

1. Basic Building Block
A SQL report consists of an SQL code with the following content:
SELECT
samples.name AS 'Sample',
samples.description AS 'Description'
FROM samples
WHERE samples.visible_to != 'deleted'
ORDER BY samples.name DESC;

2. Elements
The following elements are commonly used:

SELECT: Columns
AS: Column-Description (optional)
FROM: Data source table
WHERE: Conditions
ORDER BY: Sorting

3. Query Building Blocks
You can use the following query building blocks in your SQL reports:

WHERE samples.visible_to != 'deleted' Excludes deleted samples.

WHERE samples.date BETWEEN FROMDATE AND TILLDATE Allows the entire evaluation to be filtered by date ranges (laboratory database internal variable, see instructions on LINK_TO_PAGE=234). The filter is displayed above the SQL Report.

ORDER BY samples.date DESC Sorts in descending (DESC) order by sample date (or ASC for ascending).

For more examples of evaluations, refer to: Evaluations -> Examples

4. JOIN
To join multiple tables together, you need a JOIN.
code>SELECT FROM oldTabs

JOIN newTabs ON ordTabs.id = newTabs.ordTab_id;

Note: In the LAB DATABASE, all table names are in plural (Tables), while column names are mostly in singular (Table). This makes it easier to distinguish between table names and column names.

Here is a small overview of which tables are linked for the areas: Order-Sample-Result-Parameter-Specification.

5. Link
To obtain links in the result table, use the laboratory database's internal linking system. For example, to link to the sample details view, use:

CONCAT('link==../samples/view/', samples.id, '==', samples.name) as 'Samples'
../samples/view/' = LDB-internal Link
samples.id=Part of the link
samples.name = Display value
'Proben' =Column header

6. Linked Master Data Fields
For example, if a master data field in samples (DDF_CUSTOMER) is linked to customer numbers, use the following SELECT/JOIN:
customers.name as 'customer'
FROM samples
JOIN customers ON samples.DDF_KUNDE = customers.id


7. Functions

ExampleResultRemark
IF-Then(CASE)SELECT CASE WHEN MyField = 0 THEN 'is 0' ELSE 'not 0' END AS 'Result' FROM myTable;IF MyField = 0 then result = 'Is Null' else result = 'Not 0'ELSE ist optional
IF-Then (IF)IF (MyField = 0,'is 0', 'not 0') AS 'Result' FROM MyTable;IF MyField = 0 then Result = 'is 0' else Result = 'not 0'
Decimal Number format CAST(REPLACE(parameters.value0, ',', '.') AS DECIMAL(12,2))1.05 -> 1,05 100.2312 -> 100,23 replaces the comma with a dot and creates with CAST … as DECIMAL(12,2) a decimal number. 12= Total number of digits, 2 = Number of digits after decimal point

Last change: 10.01.2025

Allgemeines

Einführungsphase

Mitarbeiter

Aufträge

Proben

Probenvorlage

Berichte

Berichtstabellen Editor

Kunden

Kundenzone (optional)

Anlagen

Angebote

Rechnungen

Parameter

Rechnen mit Parametern

Schnittstellen

Webservice

Transformationscode

Prüfpläne / Grenzwerte / Spezifikationen

Dokumentenlenkung

Prüfmittel

Material

Mitarbeiterschulungen

8D-Report

Sonstiges

PDF-Vorlagen

Fragen und Antworten

Lieferantenbewertung

Dateiverwaltung

Auswertungen

Prozesse