2013-08-21 3 views
0

У меня есть запрос, как это:извлечения данных из таблицы, которые не имеют каких-либо идентификатор

SELECT 
    t.transactID, 
    t.TBarcode, 
    l.LocName, 
    v.Vtype, 
    t.dtime, 
    t.PlateNo, 
    ps.PS, 
    pc.PlateCode, 
    p.COMMENTS 
FROM dbo.PoliceRecord_tbl p 
INNER JOIN dbo.Transaction_tbl t ON t.PSID = p.PSource AND t.PCdID = p.PSCode AND t.PlateNo = p.PNumber 
JOIN dbo.Location_tbl l ON l.Locid = t.Locid 
JOIN dbo.VType_tbl v ON v.vtid = t.vtid 
JOIN dbo.PlateSource_tbl ps ON ps.PSID = t.PSID 
JOIN dbo.PlateCode_tbl pc ON pc.PCdID = t.PCdID AND t.STATUS IN (0, 1) 
    AND t.TBarcode NOT IN (
     SELECT TBarcode 
     FROM dbo.EmailSendLog_tbl 
    ) AND p.DELETED = 0 
END 

мой из положить становится все правильно: enter image description here

, но у меня есть еще одна таблица EmailSubject_tbl, который содержит только один поле enter image description here я хочу, чтобы получить это значение также при выполнении моего запроса: мой ожидаемый результат

Transactid Tbarcode Locname  Vtype Dtime  PlateNo PS PlateCode Comments EmailSubject 
3701  6191112123456 AddressHotel Normal 2013-06-09 123456 Dubai A  Test  PoliceRecord 

ответ

1

Предполагая, что ваше почтовое сообщение содержит один рекорд

SELECT 
    t.transactID, 
    t.TBarcode, 
    l.LocName, 
    v.Vtype, 
    t.dtime, 
    t.PlateNo, 
    ps.PS, 
    pc.PlateCode, 
    p.COMMENTS, 
    (select TOP 1 EmailSubject FROM EmailSubject_tbl) AS EmailSubject 
FROM dbo.PoliceRecord_tbl p 
INNER JOIN dbo.Transaction_tbl t ON t.PSID = p.PSource AND t.PCdID = p.PSCode AND t.PlateNo = p.PNumber 
JOIN dbo.Location_tbl l ON l.Locid = t.Locid 
JOIN dbo.VType_tbl v ON v.vtid = t.vtid 
JOIN dbo.PlateSource_tbl ps ON ps.PSID = t.PSID 
JOIN dbo.PlateCode_tbl pc ON pc.PCdID = t.PCdID AND t.STATUS IN (0, 1) 
    AND t.TBarcode NOT IN (
     SELECT TBarcode 
     FROM dbo.EmailSendLog_tbl 
    ) AND p.DELETED = 0 
END 
+0

Неверный синтаксис рядом с ключевым словом 'select'. – user2674855

+0

сейчас, нормально, я получил это. – user2674855

+0

Я получил ожидаемое предложение. Спасибо за помощь. – user2674855

0

Вы можете использовать cross join принести в несвязанной таблице:

SELECT 
    ... 
    p.COMMENTS, 
    es.EmailSubject 
FROM dbo.PoliceRecord_tbl p 
.... 
CROSS JOIN dbo.EmailSubject_tbl es 
... 
-1

Попробуйте

SELECT 
    t.transactID, 
    t.TBarcode, 
    l.LocName, 
    v.Vtype, 
    t.dtime, 
    t.PlateNo, 
    ps.PS, 
    pc.PlateCode, 
    p.COMMENTS, 
    e.EmailSubject 
FROM dbo.PoliceRecord_tbl p, EmailSubject_tbl e 
INNER JOIN dbo.Transaction_tbl t ON t.PSID = p.PSource AND t.PCdID = p.PSCode AND t.PlateNo = p.PNumber 
JOIN dbo.Location_tbl l ON l.Locid = t.Locid 
JOIN dbo.VType_tbl v ON v.vtid = t.vtid 
JOIN dbo.PlateSource_tbl ps ON ps.PSID = t.PSID 
JOIN dbo.PlateCode_tbl pc ON pc.PCdID = t.PCdID AND t.STATUS IN (0, 1) 
    AND t.TBarcode NOT IN (
     SELECT TBarcode 
     FROM dbo.EmailSendLog_tbl 
    ) AND p.DELETED = 0 
+0

проверки обновленного ответ –

+0

вниз избирателя объяснить почему? –

Смежные вопросы