Wypowiedzi
-
Ale chyba Daniel pokazał selekta na coś dokładnie odwrotnego - na tych klientów, którzy MAJĄ wpisy w wynikach (a miało pokazać tych co NIE MAJĄ). Zatem, jeśli już, to w pierszym selekcie WHERE NOT EXISTS a nie WHERE EXISTS. A drugiego nie ma co poprawiać...
-
Zdaje się, że nowy SQL*Developer ma w sobie coś z sql-serverowego profilera - ale działa wymaga Oracle'a 11-tki.
-
Pierwsze co bym zrobił, to przypomniał sobie trochę teorii z programowania współbieżnego. Jeśli zasoby są przydzielane zawsze w tej samej kolejności, to sesje się nie zakleszczą. A jak to wygląda u Ciebie?
-
Sorki z góry, ale jestem oracle'owcem (z MySQL miałem do czynienia mało), więc nie do końca rozumiem tak podstawowe problemy. Czy w MySQL nie ma czegoś takiego:
UPDATE kalendarz2
SET ile_dni = if(DATEDIFF(data_do, data_od) = 0, 1, DATEDIFF(data_do, data_od));
albo
INSERT INTO kalendarz2(data_od, data_do, ile_dni)
SELECT data_od, data_do, if(DATEDIFF(data_do, data_od) = 0, 1, DATEDIFF(data_do, data_od))
FROM kalendarz;
albo
UPDATE kalendarz2 k2
SET ile_dni = (SELECT if(DATEDIFF(data_do, data_od) = 0, 1, DATEDIFF(data_do, data_od))
FROM kalendarz k
WHERE k.data_od = k2.data_od);
To chyba podstawy standardu SQL...
Swoją drogą, to nie wiem czy Ty masz jedną tabelę z 3 kolumnami (2 wypełnione + 1 nowa do wypełnienia: data_od + data_do + ile_dni), czy 2 tabele (jedna: data_od + data_do, druga: data_od + ile_dni, gdzie ta druga jest do wypełnienia). Bo później pisałeś, że masz "nową" strukturę (i podałeś tylko 2 kolumny).