80 lines
1.2 KiB
Go
80 lines
1.2 KiB
Go
package queries
|
|
|
|
import (
|
|
"bssapp-backend/db"
|
|
"context"
|
|
)
|
|
|
|
type CariMasterRow struct {
|
|
CariKodu string
|
|
CariDetay string
|
|
Piyasa string
|
|
Temsilci string
|
|
Ozellik03 string
|
|
Ozellik05 string
|
|
Ozellik06 string
|
|
Ozellik07 string
|
|
Ozellik08 string
|
|
}
|
|
|
|
func getCariMasterMap(
|
|
ctx context.Context,
|
|
) (map[string]CariMasterRow, error) {
|
|
|
|
const q = `
|
|
WITH CTE AS (
|
|
SELECT
|
|
*,
|
|
rn = ROW_NUMBER() OVER (
|
|
PARTITION BY LEFT(CariKodu,8)
|
|
ORDER BY CariKodu
|
|
)
|
|
FROM dbo.MK_CARI_ILETISIM WITH(NOLOCK)
|
|
)
|
|
SELECT
|
|
CariKodu,
|
|
CariDetay,
|
|
PIYASA,
|
|
CARI_TEMSILCI,
|
|
Ozellik03,
|
|
Ozellik05,
|
|
Ozellik06,
|
|
Ozellik07,
|
|
Ozellik08
|
|
FROM CTE
|
|
WHERE rn=1
|
|
`
|
|
|
|
rows, err := db.MssqlDB.QueryContext(ctx, q)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
out := make(map[string]CariMasterRow, 4096)
|
|
|
|
for rows.Next() {
|
|
|
|
var r CariMasterRow
|
|
|
|
err := rows.Scan(
|
|
&r.CariKodu,
|
|
&r.CariDetay,
|
|
&r.Piyasa,
|
|
&r.Temsilci,
|
|
&r.Ozellik03,
|
|
&r.Ozellik05,
|
|
&r.Ozellik06,
|
|
&r.Ozellik07,
|
|
&r.Ozellik08,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
out[r.CariKodu] = r
|
|
}
|
|
|
|
return out, nil
|
|
}
|