PSLine2000Documentation/Queries/Query2.md

64 lines
2.6 KiB
Markdown

# Query2
Analysis generated on: 4/2/2025 10:09:20 AM
---
## SQL Statement
```sql
SELECT DISTINCTROW Left$([PartNumber],7) AS Expr1, Right$([PartNumber],1) AS Expr2, Metals.PartNo, Metals.Gauge, Metals.Density, Process.PartName
FROM Process INNER JOIN Metals ON Process.MetalType = Metals.PartNo
WHERE ((Metals.PartNo="8110611"))
ORDER BY Left$([PartNumber],7), Right$([PartNumber],1) DESC;
```
## Dependencies
- [[Tables/Process]]
- [[Queries/Metals]]
## Parameters
- *None*
## What it does
**SQL Query Description**
==========================
### Overview
This SQL query retrieves specific data from two joined tables, `Process` and `Metals`, based on a condition applied to the `Metals.PartNo` column. The retrieved columns are modified using string manipulation functions.
### Step-by-Step Explanation
#### 1. Selecting Distinct Row Values
The `SELECT DISTINCTROW` statement is used to retrieve only unique rows from the result set.
#### 2. String Manipulation Functions
Two string manipulation functions are applied to the `PartNumber` column:
* `Left$([PartNumber],7)`: This function takes the first 7 characters from the left side of the `PartNumber`. The `$` symbol is used to indicate that the function operates on a string.
* `Right$([PartNumber],1)`: This function takes the last character from the right side of the `PartNumber`.
The resulting strings are assigned aliases as `Expr1` and `Expr2`, respectively.
#### 3. Joining Tables
The query joins the `Process` table with the `Metals` table on the condition that `MetalType` in `Process` equals `PartNo` in `Metals`. This allows the query to access data from both tables based on a common column.
#### 4. Filtering Data
A filter is applied using the `WHERE` clause, which only includes rows where the value of `Metals.PartNo` is equal to `'8110611'`.
#### 5. Sorting Results
The results are sorted in descending order based on both `Left$([PartNumber],7)` and `Right$([PartNumber],1)`. This means that the rows will be ordered first by the last character of the part number (in reverse order), and then by the first 7 characters of the part number.
#### 6. Retrieving Additional Data
The query retrieves additional data from both tables, including:
* `Metals.PartNo`: The part number of the metal.
* `Metals.Gauge`: The gauge of the metal.
* `Metals.Density`: The density of the metal.
* `Process.PartName`: The name of the process associated with the metal.
### Result
The query will return a list of rows that meet the specified conditions, with the modified `PartNumber` values and additional data from both tables.