IntervalMatch
Genişletilmiş IntervalMatch öneki, ayrık sayısal değerleri bir veya daha fazla sayısal aralıkla eleştiren ve isteğe bağlı olarak bir veya daha fazla ek anahtarın değerlerini eşleştiren bir tablo oluşturmak için kullanılır.
Syntax:
IntervalMatch (matchfield)(loadstatement | selectstatement )
IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
Aralıklar çakışabilir ve ayrık değerler tüm eşleşen aralıklara bağlanır.
Genişletilmiş
Tanımlanmamış aralık sınırlarının göz ardı edilmesini önlemek için,
Arguments:
Bağımsız Değişken | Açıklama |
---|---|
|
Aralıklara bağlanacak ayrık sayısal değerleri içeren alan. |
|
Dönüştürme sırasında eşleştirilecek ek öznitelikleri içeren alan. |
|
Sonuçta birinci alanı her bir aralığın alt sınırını içeren, ikinci alanı her bir aralığın üst sınırını içeren ve anahtar eşleştirmesi kullanılması durumunda da üçüncü ve varsa sonraki alanları IntervalMatch deyiminde bulunan anahtar alanları içeren bir tablo ortaya çıkmalıdır. Aralıklar her zaman kapalıdır; yani uç noktaları her zaman aralığa dahil edilir. Sayısal olmayan sınırlar, aralığı göz ardı edilmiş (tanımlanmamış) olarak işler. |
Example 1:
Aşağıda iki tablo mevcuttur: Birinci tablo, farklı siparişlerin üretiminin başlangıç ve bitiş zamanlarını tanımlar. İkinci tablo, bir dizi ayrık olayı listeler. IntervalMatch öneki aracılığıyla, örneğin hangi siparişlerin kesintilerden etkilendiğini ve hangi siparişlerin hangi vardiyalarda üretildiğini öğrenmek amacıyla iki tabloyu mantıksal olarak birbirine bağlamak mümkündür.
LOAD * Inline [
Time, Event, Comment
00:00, 0, Start of shift 1
01:18, 1, Line stop
02:23, 2, Line restart 50%
04:15, 3, Line speed 100%
08:00, 4, Start of shift 2
11:43, 5, End of production
];
OrderLog:
LOAD * INLINE [
Start, End, Order
01:00, 03:35, A
02:30, 07:58, B
03:04, 10:27, C
07:23, 11:43, D
];
//Link the field Time to the time intervals defined by the fields Start and End.
Inner Join IntervalMatch ( Time )
LOAD Start, End
Resident OrderLog;
Sonuç:
Artık, OrderLog tablosu ek bir sütun içermektedir: Time. Kayıtların sayısı da genişlemiştir.
Time | Start | End | Order |
---|---|---|---|
00:00 |
- | - | - |
01:18 | 01:00 | 03:35 | A |
02:23 | 01:00 | 03:35 | A |
04:15 | 02:30 | 07:58 | B |
04:15 | 03:04 | 10:27 | C |
08:00 | 03:04 | 10:27 | C |
08:00 | 07:23 | 11:43 | D |
11:43 | 07:23 |
11:43 |
D |
Example 2: (
Yukarıdaki örnekle aynı olup anahtar alan olarak ProductionLine eklenmiştir.
Sonuç:
Artık aşağıdaki gibi bir tablo kutusu oluşturulabilir:
ProductionLine | Time | Event | Comment | Order | Start | End |
---|---|---|---|---|---|---|
P1 |
00:00 |
0 | Start of shift 1 | - | - | - |
P2 | 01:00 | 0 | Start of shift 1 | - | - | - |
P1 | 01:18 | 1 | Line stop | A | 01:00 | 03:35 |
P1 | 02:23 | 2 | Line restart 50% | A | 01:00 | 03:35 |
P1 | 04:15 | 3 | Line speed 100% | B | 02:30 | 07:58 |
P1 | 04:15 | 3 | Line speed 100% | C | 03:04 | 10:27 |
P1 | 08:00 | 4 | Start of shift 2 | C | 03:04 | 10:27 |
P2 | 09:00 | 4 | Start of shift 2 | D | 07:23 | 11:43 |
P1 | 11:43 | 5 | End of production | - | - | - |
P2 | 11:43 | 5 | End of production | D | 07:23 | 11:43 |