Sql Sorgu Problemi

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
alyamus
Üye
Mesajlar: 44
Kayıt: 09 Ara 2011 09:09

Sql Sorgu Problemi

Mesaj gönderen alyamus »

Arkadaşlar merhaba bir sql sorgu yazmak istiyorum çıkmadım işin içinden şimdi sql sorgusu şu şekilde

Kod: Tümünü seç

select ad,soyad, tarih,personelid from Hareketler where personelid is not null
Buraya kadar herşey normal ama elimde bir cihaz var kart okuma bu cihaz her bastıgında kart okundugunda tarihi veritabanına yazdırıyor benim yapmak istediğim giriş çıkış diye ayırmak

Yani benim istediğim şu şekilde olmalı

Kod: Tümünü seç

select ad,soyad, tarih,personelid,giris,cikis from Hareketler where personelid is not null
1.sorguda örneğin

Ahmet Canğız 2016-05-30 08:05:10.008
Ahmet Canğız 2016-05-30 17:01:25.854

benim yapmak istediğim ise
Ahmet Canğız 2016-05-30 08:05:10.008 2016-05-30 17:01:25.854

Bu şekilde yanyana listeletmek ama sorguyu beceremedim :(
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Sql Sorgu Problemi

Mesaj gönderen fesiharslan »

Merhaba;
Personel bilgileri ile Giriş-çıkış bilgileri farklı tablolarda mı?
Aynı tablolarda ise aşağıda yazmış olduğunuz SQL doğrudur.
alyamus yazdı:

Kod: Tümünü seç

select ad,soyad, tarih,personelid,giris,cikis from Hareketler where personelid is not null
Farklı tablolarda ise Join işlemi ile istediğiniz alanları birleştirerek listeleyebilirsiniz.
alyamus
Üye
Mesajlar: 44
Kayıt: 09 Ara 2011 09:09

Re: Sql Sorgu Problemi

Mesaj gönderen alyamus »

Yok yanlış anladınız tabloda tek tarih var ben personel id ve tarihi eşliyerek aynı gune aıt olan tarıhlerı ıkı sutuna bolmek ıstıyorum tek sutunda işimi görmüyor.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Sql Sorgu Problemi

Mesaj gönderen fesiharslan »

Sonradan fark ettim. Bütün bilgiler tek tabloda ve Giriş Çıkış alanı yok.
Yalnızca Tarih alanı var ve Giriş tarihi de Çıkış tarihi de bu alanda tutuluyor.

Anladığım kadarıyla tablo yapısı aşağıdaki gibi.
Resim

Bir personelin giriş çıkış kaydı Sorgulandığında aşağıdaki gibi 2 satırlık kayıt geliyor.

Kod: Tümünü seç

SELECT 
  AD,
  SOYAD,
  TARIH
FROM 
  PERSONEL 
WHERE (AD='Fesih') AND (SOYAD='ARSLAN')
Resim

Bu durumda ilk kayıt ve 2. kaydı ayrı ayrı sorgu ile birleştirip satırları sütunlara dönüştürmek gerekiyor.
Burada Firebird veri tabanı için örneklendiriyorum.
MS SQL Server için aynı işlemleri TOP fonksiyonunu kullanarak yapabilirsiniz.

SQL sorgusu:

Kod: Tümünü seç

SELECT T1.AD, T1.SOYAD, T1.TARIH AS GIRIS, T2.TARIH AS CIKIS FROM 
(SELECT FIRST 1  AD,  SOYAD,  TARIH FROM PERSONEL WHERE (AD='Fesih') AND (SOYAD='ARSLAN')) t1,
(SELECT FIRST 1 skip 1 AD, SOYAD, TARIH FROM PERSONEL WHERE (AD='Fesih') AND (SOYAD='ARSLAN')) t2
Ekran Görüntüsü:
Resim

İyi çalışmalar...
alyamus
Üye
Mesajlar: 44
Kayıt: 09 Ara 2011 09:09

Re: Sql Sorgu Problemi

Mesaj gönderen alyamus »

Hocam çok teşekkür ederim çok işime yaradı fakat bir sorun daha ortaya çıktı onuda yeni bir konu başlı adı altında açacam farklı bir sorun
Cevapla