К сожалению, SQL не имеет требуемой функции.
Если имена кассиров фиксированы и известно количество кассиров, вы можете использовать запрос, подобный следующему:
SELECT DaysWork
,Max(IIf(Source <> 'Cashier1', NULL, Opening)) AS Opening_1
,Max(IIf(Source <> 'Cashier1', NULL, CashIN)) AS CashIN_1
,Max(IIf(Source <> 'Cashier1', NULL, CashOUT)) AS CashOUT_1
,Max(IIf(Source <> 'Cashier2', NULL, Opening)) AS Opening_2
,Max(IIf(Source <> 'Cashier2', NULL, CashIN)) AS CashIN_2
,Max(IIf(Source <> 'Cashier2', NULL, CashOUT)) AS CashOUT_2
FROM MyTable
GROUP BY DaysWork
Также вы можете создать запрос и использовать его вместо MyTable
, где каждому кассиру присваивается соответствующий номер, и использовать эти цифры в столбце Source
в запросе отчета. В этом случае вам не нужно знать имена кассиров, но количество разных кассиров должно быть ограничено
SELECT DaysWork
,Max(IIf(CashierNo <> 1, NULL, Opening)) AS Opening_1
,Max(IIf(CashierNo <> 1, NULL, CashIN)) AS CashIN_1
,Max(IIf(CashierNo <> 1, NULL, CashOUT)) AS CashOUT_1
,Max(IIf(CashierNo <> 2, NULL, Opening)) AS Opening_2
,Max(IIf(CashierNo <> 2, NULL, CashIN)) AS CashIN_2
,Max(IIf(CashierNo <> 2, NULL, CashOUT)) AS CashOUT_2
FROM qry_OnMyTable
GROUP BY DaysWork