Ahoj,
mám tabulku, do které se mi zaznamenávají kódy operací, osoby a datum. Potřeboval bych zařídit to, aby se kód operace změnil na jiný pokud se nejedná o první operaci v daném dni pro danou osobu. Je možné s tím helpnout?
Ahoj,
mám tabulku, do které se mi zaznamenávají kódy operací, osoby a datum. Potřeboval bych zařídit to, aby se kód operace změnil na jiný pokud se nejedná o první operaci v daném dni pro danou osobu. Je možné s tím helpnout?
Zalezi na tom, podle ceho poznas, ze se jedna o prvni operaci v danem dni pro danou osobu.
Pode popisu mas v tabulce kod operace, datum, osobu.
Kdyz tam budou zaznamy
Rezani, 1.6.2016, Adam
Vrtani, 1.6.2016, Adam
Strihani, 1.6.2016, Adam
ktera operace je 1.6.2016 pro Adama prvni?
CREATE TABLE Operace
(
Kod NVARCHAR(50)
, Datum DATETIME
, Osoba NVARCHAR(50)
);
INSERT INTO Operace
VALUES
('O001', '2016-06-01T01:00:00', 'Pepa')
, ('O002', '2016-06-01T02:00:00', 'Franta')
, ('O003', '2016-06-01T03:00:00', 'Lojza')
, ('O004', '2016-06-01T04:00:00', 'Pepa')
, ('O005', '2016-06-01T05:00:00', 'Franta')
, ('O006', '2016-06-01T06:00:00', 'Lojza')
, ('O007', '2016-06-01T07:00:00', 'Pepa')
, ('O008', '2016-06-01T08:00:00', 'Franta')
, ('O009', '2016-06-01T09:00:00', 'Lojza')
, ('O001', '2016-06-02T01:00:00', 'Pepa')
, ('O002', '2016-06-02T02:00:00', 'Pepa')
, ('O003', '2016-06-02T03:00:00', 'Pepa')
, ('O004', '2016-06-02T04:00:00', 'Franta')
, ('O005', '2016-06-02T05:00:00', 'Franta')
, ('O006', '2016-06-02T06:00:00', 'Franta')
, ('O007', '2016-06-02T07:00:00', 'Lojza')
, ('O008', '2016-06-02T08:00:00', 'Lojza')
, ('O009', '2016-06-02T09:00:00', 'Lojza')
;
UPDATE o
SET o.Kod = 'O***'
FROM Operace o
INNER JOIN (
SELECT Datum, Osoba, RN = ROW_NUMBER() OVER (PARTITION BY Osoba, YEAR(Datum), MONTH(Datum), DAY(Datum) ORDER BY Datum)
FROM Operace
) x ON x.Osoba = o.Osoba AND x.Datum = o.Datum AND x.RN > 1
;
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku