Boopalslm Ответов: 1

Левое соединение ошибка неправильный синтаксис около ключевого слова 'слева'.


Это мой вопрос

select  cstdetails.loandate, cstdetails.cstname, cstdetails.loanamt,
cstduebill.cstname,cstduebill.loanslno,  cstduebill.loanamt, 
cstduebill.billdate, cstduebill.totdueamt 
from cstdetails where cstdetails.loandate between '2020-05-20' and '2020-05-20' 
LEFT JOIN cstduebill ON cstdetails.cstname = cstduebill.cstname  WHERE rectno IN(
SELECT max(rectno) FROM cstduebill WHERE billdate between '2020-05-20' and '2020-05-20' 
GROUP BY loanslno) 
AND billdate between '2020-05-20' and '2020-05-20' ORDER BY loanslno


но ошибка пришла


Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'LEFT'.
Msg 156, Level 15, State 1, Line 8
Incorrect syntax near the keyword 'AND'.


пожалуйста кто нибудь решите мою проблему

Что я уже пробовал:

Left join error  Incorrect syntax near the keyword 'LEFT'.

1 Ответов

Рейтинг:
1

Maciej Los

При первом же взгляде...

Зачеркнутый контент-это излишне!

select  cstdetails.loandate, cstdetails.cstname, cstdetails.loanamt,
cstduebill.cstname,cstduebill.loanslno,  cstduebill.loanamt, 
cstduebill.billdate, cstduebill.totdueamt 
from cstdetails where cstdetails.loandate between '2020-05-20' and '2020-05-20' 
LEFT JOIN cstduebill ON cstdetails.cstname = cstduebill.cstname  WHERE rectno IN(
SELECT max(rectno) FROM cstduebill WHERE billdate between '2020-05-20' and '2020-05-20' 
GROUP BY loanslno) 
AND billdate between '2020-05-20' and '2020-05-20' ORDER BY loanslno


Кстати: пожалуйста, используйте псевдонимы таблиц: Псевдонимы SQL[^]

SELECT cd.loandate, cd.cstname, cd.loanamt,
cb.cstname, cb.loanslno,  cb.loanamt, cb.billdate, cb.totdueamt 
FROM cstdetails  cd 
LEFT JOIN cstduebill cb ON cd.cstname = cb.cstname
WHERE rectno IN(
    SELECT max(rectno)
    FROM cstduebill
    WHERE billdate between '2020-05-20' and '2020-05-20' 
    GROUP BY loanslno) 
AND billdate between '2020-05-20' and '2020-05-20'
AND cd.loandate between '2020-05-20' and '2020-05-20' 
ORDER BY loanslno


Boopalslm

Да, я уже использую этот запрос, но как получить as on date
Cstdetails

Maciej Los

"Да, я уже использую этот запрос..."
Это работает? Если это сработает, вы должны принять мой ответ как решение (зеленая кнопка).

".. но как попасть как на свидание"
Это еще один вопрос (первоначально не опубликованный!)...

Boopalslm

Сэр, но как сделать по состоянию на дату cstdetails доклад

Maciej Los

Если вы хотите получить сегодняшние данные:
WHERE billdate between CONVERT(DATE, GETDATE()) and CONVERT(DATE, GETDATE())

Boopalslm

там, где я использую ваш запрос, пожалуйста, объедините выше ваш запрос с моим нижеприведенным запросом

Выберите компакт-диск.loandate, компакт-диск.cstname, компакт-диск.loanamt,
cb.cstname, cb.loanslno, cb.loanamt, cb.billdate, cb.totdueamt
С компакт-диска cstdetails
Левое соединение cstduebill КБ на CD.cstname = КБ.cstname
Где ректно в(
Выберите max(rectno)
От cstduebill
Где billdate между "2020-05-20" и "2020-05-20"
Группа по loanslno)
И billdate между 2020-05-20 " и "2020-05-20'
Заказ от loanslno

Maciej Los

Пожалуйста, смотрите обновленный ответ.