SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Aralık 2016 Çarşamba

Get All Content Databases from SQL by PowerShell

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$sqlServer = new-object ("Microsoft.SqlServer.Management.Smo.Server") "test\testsqlserver"
foreach($sqlDatabase in $sqlServer.databases) {$sqlDatabase.name}

9 Ekim 2014 Perşembe

Sql Pivoting (Rotating Table)

Sql Query yapısında bazen bir tabloyu döndürmek isteyebiliriz.
Bunun için Pivoting adı verilen sql query yapısını kullanabiliriz.

  • Normal bir Sql işlemi yapalım.


    Sonuç:


  •  Pivot Kullanarak Tablomuzun bakış açısını değiştirelim.

    Sonuç:


http://technet.microsoft.com örneğidir.

23 Temmuz 2014 Çarşamba

Sql Merge


MERGE [hint] INTO [table_name]
USING (table_view_or_query)

ON (condition)

WHEN MATCHED THEN (update_clause)

WHEN NOT MATCHED THEN (insert_clause);

  • Employee Tablosu oluşturuyoruz. (Create Employee Table)

CREATE TABLE employee (
employee_id int,
first_name  varchar(20),
last_name  varchar(20),
dept_no     varchar(2),
salary    money);
  • Employee Tablosuna değerleri giriyoruz. (Inset values in to the Employee Table)

INSERT INTO employee VALUES (1, 'Dan', 'Morgan', 10, 100000);
INSERT INTO employee VALUES (2, 'Jack', 'Cline', 20, 100000);
INSERT INTO employee VALUES (3, 'Elizabeth', 'Scott', 20, 50000);
INSERT INTO employee VALUES (4, 'Jackie', 'Stough', 20, 40000);
INSERT INTO employee VALUES (5, 'Richard', 'Foote', 20, 30000);
INSERT INTO employee VALUES (6, 'Joe', 'Johnson', 20, 70000);
INSERT INTO employee VALUES (7, 'Clark', 'Urling', 20, 90000);
  • Bonus Tablosu Oluşturuyoruz. (Create Bonuses Table)

CREATE TABLE bonuses (
employee_id int, bonus int DEFAULT 100);

  • Bonus Tablosuna değerleri giriyoruz. (Insert Values in to the Bonuses Table)

INSERT INTO bonuses (employee_id) VALUES (1);
INSERT INTO bonuses (employee_id) VALUES (2);
INSERT INTO bonuses (employee_id) VALUES (4);
INSERT INTO bonuses (employee_id) VALUES (6);
INSERT INTO bonuses (employee_id) VALUES (7); 

  • Aşağıdaki Query'i yazıyoruz. (Write the below Query Code)

Burada eşleştirme yapıyoruz. Dept_no 20 olan verilerin bonus değeri maaşları 0.1 ile çarpılmasıyla hesaplanmış oluyor.
Eğer eşleşmiyorsa Kişini Maaş bonusu maaşının 0.05 ile çarpmı ile Bonuses tablosuna ekleniyor.

Merge INTO bonuses B
USING (
       SELECT employee_id,salary from employee where Dept_no=20) E
  ON (B.employee_id=E.employee_id)
WHEN MATCHED THEN
       UPDATE SET B.bonus =(E.salary * 0.1)
WHEN NOT MATCHED THEN
       INSERT (employee_id,bonus)

  VALUES (E.employee_id,(E.salary * 0.05));