Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyprowadzić 7 rekordów dla każdego wiersza, 1 dla każdego dnia tygodnia?

Możesz to zrobić za pomocą CROSS JOIN

(Dzięki dla @TT. za zwrócenie uwagi, że moja odpowiedź może zostać skrócona)

DECLARE @tbl TABLE(CONTID INT,  DESCR VARCHAR(100));
INSERT INTO @tbl VALUES
 (001,'Area 1')
,(001,'Area 2')
,(001,'Area 3');

SELECT *
FROM @tbl AS tbl
CROSS JOIN (VALUES(0),(1),(2),(3),(4),(5),(6)) AS AllDays(DayInx)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008:przenoszenie danych między środowiskami

  2. Nie można obciąć tabeli, ponieważ odwołuje się do niej ograniczenie klucza obcego?

  3. Dlaczego nie mogę użyć aliasu dla agregatu w klauzuli posiadającej?

  4. Aby znaleźć następny dzień roboczy

  5. Utwórz kolumnę wyliczaną przy użyciu danych z innej tabeli