eu tenho duas tabela uma Ordens_Serviço e outra Veículos_Escoltados
tabela Ordens _serviços é tabela pai
tabela Veículos_escoltados tabela filho
lanço registro um ordem serviço tabela pai
NOS (CAMPO PRIMARIO)
DATA
HORA
ORIGEM
DESTINO
Na tabela filho lanço os veículos foram escoltados são mais de um isto é amarado pelo NOS
tabela filho
NOS
Placa
Carreta
Motorista
O meu problema esta na consulta quando consulta é apresentada tenho ter um campo com todos veiculos escoltados exemplo
DPF-1123/SSD-9087/WER-9076
Hoje eu consigo fazer isto mas para o primeiro registro somente os depois não sei como fazer
tabela pai 01 registro na tabela filho pode ter mais de um registro
o código que estou usando hoje é este que me retorna somente a primeira placa num campo View:
O nome do campo seria AutoCargas(seriam todos autocargas escoltados)
(SELECT TOP (1) SUBSTRING(OSVEPlac, 1, 3) + ‘-’ + SUBSTRING(OSVEPlac, 4, 8) AS Expr1 FROM dbo.OrdensServico_Veiculos AS OV WHERE (OSVEOrSe = OS.OrSeCodi))
Com o comando Top consigo pegar só primeiro registro que tenha o memso numero de NOS mas preciso fazer um campo tenha todas as placas veiculos escoltados pela aquela equipe de escolta em uma consulta.
VEJA A BAIXO MINHA CONSULTA COMPLETA
SELECT TOP (100) PERCENT 1 AS centro_custo, OS.OrSeCodi AS NOS, OS.OrSeIODH AS Data_Operacao, ISNULL(SO.SoliOrBa, ‘não Informado’) AS Minuta,
ISNULL(SO.SoliDeBa, ‘não Informado’) AS Danfe, SO.SoliIODH AS Agendado, ISNULL(OS.OrSeSolt, ‘-------’) AS Solicitante,
(SELECT TOP (1) SUBSTRING(OSVEPlac, 1, 3) + ‘-’ + SUBSTRING(OSVEPlac, 4, 8) AS Expr1
FROM dbo.OrdensServico_Veiculos AS OV
WHERE (OSVEOrSe = OS.OrSeCodi)) AS AutoCarga, ISNULL(OS.OrSeOrEn, ‘----------’) AS Origem, ISNULL(OS.OrSeDeEn, ‘----------’) AS Destino,
OS.OrSeIODH AS Inicio, OS.OrSeTODH AS Termino, ISNULL(RIGHT(‘00’ + CAST(DATEDIFF(MINUTE, OS.OrSeIODH, OS.OrSeTODH) / 60 AS VARCHAR), 3)
+ ‘:’ + RIGHT(‘00’ + CAST(DATEDIFF(MINUTE, OS.OrSeIODH, OS.OrSeTODH) % 60 AS VARCHAR), 2), ‘000:00’) AS Horas_Operacao,
CASE WHEN TB.TabeTipo = 1 AND TB.TabeExAHstr IS NOT NULL
THEN TB.TabeExAHstr WHEN TB.TabeTipo = 3 THEN ISNULL(RIGHT(‘00’ + CAST((OS.OrSeLiMi / 60) AS VARCHAR), 3)
+ ‘:’ + RIGHT(‘00’ + CAST((OS.OrSeLiMi % 60) AS VARCHAR), 2), ‘000:00’) WHEN TB.TabeTipo = 4 AND TB.TabeExAH IS NULL
THEN ISNULL(TB.TabeExAHstr, ‘000:00’) ELSE ISNULL(RIGHT(‘0’ + CAST(CONVERT(VARCHAR(5), TB.TabeExAH, 108) AS VARCHAR), 6), ‘000:00’)
END AS Franquia, ISNULL(RIGHT(‘00’ + CAST(OS.OrSeMiEx / 60 AS VARCHAR), 3) + ‘:’ + RIGHT(‘00’ + CAST(OS.OrSeMiEx % 60 AS VARCHAR), 2),
‘000:00’) AS Horas_Execedente, CAST(OS.OrSeVaHE AS NUMERIC(18, 2)) AS Valor_Por_Hora, ISNULL(CAST(CAST(OS.OrSeMiEx AS NUMERIC(18, 2))
/ 60 * OS.OrSeVaHE AS NUMERIC(18, 2)), 0) AS Valor_Exedente, OS.OrSeIOKm AS Km_Inicio, OS.OrSeTOKm AS Km_Termino,
OS.OrSeTOKm - OS.OrSeIOKm AS Km_Total, OS.OrSeLiKm AS Km_Franquia, ISNULL(OS.OrSeKmEx, 0) AS Km_Exedente,
CAST(OS.OrSeVaKE AS NUMERIC(18, 2)) AS Valor_Por_Km, ISNULL(CAST(OS.OrSeKmEx * OS.OrSeVaKE AS NUMERIC(18, 2)), 0)
AS Valor_Km_Excedente, ISNULL(CAST(OS.OrSePeda AS NUMERIC(18, 2)), 0) AS Pedagio, ISNULL(CAST(OS.OrSeValo AS NUMERIC(18, 2)), 0)
AS Valor_Escolta, ISNULL(CAST(OS.OrSeTota AS NUMERIC(18, 2)), 0) AS Valor_Total,
(SELECT ViatPlac
FROM dbo.Viaturas
WHERE (ViatCodi =
(SELECT EquiViat
FROM dbo.Equipes
WHERE (EquiCodi =
(SELECT OSEqEqui
FROM dbo.OrdensServico_Equipes
WHERE (OSEqOrSe = OS.OrSeCodi)))))) AS Veiculo_Escolta, EQ.EquiIden AS Equipe, CL.ClieCodi AS CodCliente,
CL.ClieRaza AS Cliente, OS.OrSeTabe AS Cod_Tabela, TB.TabeDesc AS Tabela_preco
FROM dbo.OrdensServico AS OS INNER JOIN
dbo.OrdensServico_Equipes AS OE ON OS.OrSeCodi = OE.OSEqOrSe INNER JOIN
dbo.Equipes AS EQ ON OE.OSEqEqui = EQ.EquiCodi LEFT OUTER JOIN
dbo.Clientes AS CL ON CL.ClieCodi = OS.OrSeClie LEFT OUTER JOIN
dbo.Tabelas AS TB ON TB.TabeCodi = OS.OrSeTabe LEFT OUTER JOIN
dbo.Solicitacoes AS SO ON SO.SoliCodi = OS.OrSeSoli LEFT OUTER JOIN
dbo.Postos AS PO ON PO.PostCodi = OS.OrSePost
WHERE (OS.OrSeTabe <> 0) AND (CL.ClieCodi <> 8) AND (CL.ClieCodi <> 9) AND (CL.ClieCodi <> 23)
ORDER BY Cliente, Data_Operacao