У меня есть следующие SQL заявлениеКак преобразовать этот SQL-запрос в запрос LINQ?
SELECT D.*, COALESCE(T_DIZ.adet, 0) AS DIZ, COALESCE(T_OMU.adet, 0) as OMUZ
FROM
(SELECT A.DOK,COUNT(DISTINCT GNL) AS toplam FROM CKS A GROUP BY A.DOK) AS D
LEFT OUTER JOIN (
SELECT DOK, ATUR,count(DISTINCT HST)as Adet, COUNT(DISTINCT GNL) AS adet FROM CKS
WHERE ATUR LIKE '%DIZ%'
GROUP BY DOK, ATUR
) T_DIZ ON(T_DIZ.DOK = D.DOK)
LEFT OUTER JOIN (
SELECT DOK, ATUR,count(DISTINCT HST)as Adet, COUNT(DISTINCT GNL) AS adet FROM CKS
WHERE ATUR LIKE '%OMU%'
GROUP BY DOK, ATUR
) T_OMU ON(T_OMU.DOK = D.DOK)
Этот запрос такой же результат
SELECT DISTINCT(DOK), (COUNT(DISTINCT GNL)) AS TOP,
(CASE WHEN ATUR LIKE '%DIZ%' THEN COUNT(DISTINCT GNL) ELSE 0 END) AS DIZ,
(CASE WHEN ATUR LIKE '%OMU%' THEN COUNT(DISTINCT GNL) ELSE 0 END) AS OMU
FROM S_GC_UST
WHERE GC = 'C'
GROUP BY DOK, ATUR, TRH
Может кто-нибудь, пожалуйста, помогите мне, чтобы преобразовать это заявление LINQ?
спасибо.
Сколько записей будет запрошено? –
Приблизительно 400 записей. –
Вы знаете, что есть лучший способ написать этот SQL, чтобы он был в 3 раза (по крайней мере) быстрее? Поскольку вам не нужно использовать подзапросы. – Hogan