none
Erweiterte Suche (über mehrere Tabellen) RRS feed

  • Frage

  • Hallo!

    Folgende Problematik:

    Wir haben die Tabellen:

    • Auftrag
    • Station (mindestens zwei pro Auftrag)
    • Auftraggeber (einer pro Auftrag)

    Der Benutzer soll nun in einer Suche nach Aufträgen suchen können, und zwar beispielsweise mit folgender Eingabe: "Firma XY GmbH Berlin München". Als Ergebnis sollen nun alle Aufträge erscheinen, welche in den Tabellen Auftrag, Station und Auftraggeber sämtliche Suchwörter beinhalten (Firma; XY; GmbH; Berlin; München). Also beispielsweise ein Auftrag mit Auftraggeber "Firma XY GmbH", welche die Stationen "Berlin" und "München" beinhalten.

    Ich habe mich nun etwas mit der Volltextsuche beschäftigt, allerdings bin ich da auch zu keinem brauchbaren Ergebnis gekommen.

    Vielen Dank schon mal für eure Hilfe im Voraus! Ich stehe gerade irgendwie auf der Leitung und hoffe mal, ihr habt einen kleinen Denkanstoß für mich!

    Lg RK

    Samstag, 19. Juli 2014 22:59

Alle Antworten

  • Hallo Roland,

    wenn sich die Daten in drei Tabellen verstecken können, könnte der erste Schritt sein, eine Sicht zu erstellen, die die Daten aus den drei Tabellen zusammenfasst, so dass man darüber die Auftragsnummern (ID) ermitteln kann.

    Für eine Volltextsuche müsste es sich dabei um eine indizierte Sicht mit eindeutigem Schlüssel handeln, siehe Erste Schritte mit der Volltextsuche

    Sollten sich die Daten nicht in eine einheitliche Struktur bringen lassen, wäre ein anderer Ansatz, eine gespeicherte Prozedur zu erstellen und drei Abfrage zu verwenden, die die zutreffenden Aufträge über eine temporäre Tabelle "einsammeln".

    Wie das eine oder andere konkret aussehen kann, lässt sich aus der knappen Beschreibung nicht ableiten. Brauchst Du weitere Hilfe, so zeige bitte die Tabellenstruktur und einige Testdaten, vorzugsweise als SQL Skript.

    Gruß Elmar

    Sonntag, 20. Juli 2014 10:16
    Beantworter
  • Hallo Elmar!

    Erstmal Danke für deine Antwort.

    Auf die Möglichkeit mit einer indizierten Sicht bin ich gestern via Google auch gestoßen. Ich konnte nach einer Weile zwar einen Index für die Sicht erstellen, allerdings war die Sicht dann beim Volltextkatalog noch immer nicht zum Auswählen. Als Ergebnis meiner Suche brauche ich ja die IDs der Aufträge. Wenn ich die Sicht erstelle (und die Aufträge mit den Stationen verknüpfe), dann sind aber meine Auftrags-IDs nicht mehr eindeutig (werden ja multipliziert mit den Stationen). Vielleicht ist das der Grund, warum das nicht geklappt hat.

    Zum besseren Verständnis habe ich hier mal die Tabellenstruktur inkl. eines Beispiels angefügt:

    Addresses_Billings = Verrechnungsdetails eines Kunden

    Addresses_Sites = Anschrift des Kunden

    OrdersC = Auftragstabelle

    OrdersSt = Stationstabelle

    USE [MSDN_Sample]
    GO
    /****** Object:  Table [dbo].[Addresses_Billings]    Script Date: 20.07.2014 17:31:05 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[Addresses_Billings](
    	[ID] [int] IDENTITY(19667,1) NOT NULL,
    	[AddressesID] [int] NULL,
    	[MandatorID] [int] NULL CONSTRAINT [DF_Addresses_Billings_MandatorID]  DEFAULT ((0)),
    	[DeptOwnID] [int] NULL CONSTRAINT [DF_Addresses_Billings_DeptOwnID]  DEFAULT ((0)),
    	[ABTypeSYS] [int] NULL CONSTRAINT [DF_Addresses_Billings_SysABType]  DEFAULT ((1)),
    	[AccountNo] [nvarchar](50) NULL,
    	[AssemblyAccountNo] [nvarchar](50) NULL,
    	[BankOwnID] [int] NULL CONSTRAINT [DF_Addresses_Billings_BankOwnID]  DEFAULT ((0)),
    	[BankID] [int] NULL,
    	[BankAccountNo] [nvarchar](50) NULL,
    	[BankName] [nvarchar](100) NULL,
    	[BankCode] [nvarchar](100) NULL,
    	[BankIBAN] [nvarchar](50) NULL,
    	[BankSWIFT] [nvarchar](50) NULL,
    	[CurrencyID] [int] NULL CONSTRAINT [DF_Addresses_Billings_CurrencyID]  DEFAULT ((0)),
    	[InvoiceSchemeID] [int] NULL CONSTRAINT [DF_Addresses_Billings_InvoiceSchemeID]  DEFAULT ((0)),
    	[TariffID] [int] NULL CONSTRAINT [DF_Addresses_Billings_TariffID]  DEFAULT ((0)),
    	[NumberRangeID] [int] NULL CONSTRAINT [DF_Addresses_Billings_NumberRangeID]  DEFAULT ((0)),
    	[ABStatusSys] [int] NULL CONSTRAINT [DF_Addresses_Billings_SysStatus]  DEFAULT ((0)),
    	[TOPID] [int] NULL CONSTRAINT [DF_Addresses_Billings_TOPID]  DEFAULT ((0)),
    	[SitesID] [int] NULL,
    	[SearchTerm] [nvarchar](50) NULL,
    	[RefNo] [nvarchar](255) NULL,
    	[AccountingExportNo] [nvarchar](50) NULL,
    	[AccountingExportDate] [date] NULL,
    	[IndBillingAddress] [int] NULL,
    	[Remark] [ntext] NULL,
    	[AccIf1] [varchar](255) NULL,
    	[RH] [int] NULL,
    	[TimestampSYS] [datetime] NULL,
     CONSTRAINT [PK_Addresses_Billings] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
    GO
    SET ANSI_PADDING OFF
    GO
    /****** Object:  Table [dbo].[Addresses_Sites]    Script Date: 20.07.2014 17:31:05 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Addresses_Sites](
    	[ID] [int] IDENTITY(19667,1) NOT NULL,
    	[AddressesID] [int] NULL CONSTRAINT [DF_Addresses_Sites_AddressesID]  DEFAULT ((0)),
    	[SearchTerm] [nvarchar](50) NULL,
    	[SitesTypeSYS] [int] NULL CONSTRAINT [DF_Addresses_Sites_SitesTypeSYS]  DEFAULT ((0)),
    	[Name01] [nvarchar](255) NULL,
    	[Name02] [nvarchar](255) NULL,
    	[Name03] [nvarchar](255) NULL,
    	[Street] [nvarchar](255) NULL,
    	[Cntry] [nvarchar](50) NULL,
    	[Zip] [nvarchar](50) NULL,
    	[City] [nvarchar](255) NULL,
    	[Telephone] [nvarchar](50) NULL,
    	[Mobilephone] [nvarchar](50) NULL,
    	[Telefax] [nvarchar](50) NULL,
    	[Email] [nvarchar](255) NULL,
    	[Web] [nvarchar](255) NULL,
    	[IsLoadingSite] [int] NULL CONSTRAINT [DF_Addresses_Sites_IsLoadingSite]  DEFAULT ((-1)),
    	[VATNo] [nvarchar](50) NULL,
    	[TaxNo] [nvarchar](50) NULL,
    	[SitesRemark] [ntext] NULL,
    	[LatWGS] [float] NULL CONSTRAINT [DF_Addresses_Sites_Lat]  DEFAULT ((0)),
    	[LonWGS] [float] NULL CONSTRAINT [DF_Addresses_Sites_Lon]  DEFAULT ((0)),
    	[LatMCT] [float] NULL CONSTRAINT [DF_Addresses_Sites_LatMCT]  DEFAULT ((0)),
    	[LonMCT] [float] NULL CONSTRAINT [DF_Addresses_Sites_LonMCT]  DEFAULT ((0)),
    	[StTypeID] [int] NULL CONSTRAINT [DF_Addresses_Sites_StTypeID]  DEFAULT ((0)),
    	[ImageMap] [nvarchar](255) NULL,
    	[RH] [int] NULL CONSTRAINT [DF_Addresses_Sites_RH]  DEFAULT ((0)),
    	[StatusSYS] [int] NULL CONSTRAINT [DF_Addresses_Sites_SitesType]  DEFAULT ((0)),
    	[TimestampSYS] [datetime] NULL,
     CONSTRAINT [PK_Addresses_Sites] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
    GO
    /****** Object:  Table [dbo].[OrdersC]    Script Date: 20.07.2014 17:31:05 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[OrdersC](
    	[ID] [int] IDENTITY(1,1) NOT NULL,
    	[MandatorID] [int] NULL CONSTRAINT [DF_OrdersC_MandatorID]  DEFAULT ((0)),
    	[DeptOwnID] [int] NULL CONSTRAINT [DF_OrdersC_DeptOwnID]  DEFAULT ((0)),
    	[UserID] [int] NULL CONSTRAINT [DF_OrdersC_UserID]  DEFAULT ((0)),
    	[OrderDate] [datetime] NULL,
    	[OrderTypeID] [int] NULL CONSTRAINT [DF_OrdersC_OrderTypeID]  DEFAULT ((0)),
    	[OrderTypeSYS] [int] NULL CONSTRAINT [DF_OrdersC_OrderTypeSYS]  DEFAULT ((0)),
    	[PosNo] [nvarchar](50) NULL,
    	[ShortDesc] [nvarchar](255) NULL,
    	[StatusID] [int] NULL CONSTRAINT [DF_OrdersC_StatusID]  DEFAULT ((0)),
    	[OrdererID] [int] NULL CONSTRAINT [DF_OrdersC_OrdererID]  DEFAULT ((0)),
    	[OrdererContactID] [int] NULL CONSTRAINT [DF_OrdersC_OrdererContactID]  DEFAULT ((0)),
    	[RelationID] [int] NULL CONSTRAINT [DF_OrdersC_RelationID]  DEFAULT ((0)),
    	[RefNo] [nvarchar](255) NULL,
    	[PostageID] [int] NULL CONSTRAINT [DF_OrdersC_PostageID]  DEFAULT ((0)),
    	[ProjectID] [int] NULL,
    	[InvoiceRcptID] [int] NULL CONSTRAINT [DF_OrdersC_InvoiceRcptID]  DEFAULT ((0)),
    	[Remark01] [ntext] NULL,
    	[Remark02] [ntext] NULL,
    	[Remark03] [ntext] NULL,
    	[Remark04] [ntext] NULL,
    	[DescLOrdersStID] [int] NULL CONSTRAINT [DF_OrdersC_DescLOrdersStID]  DEFAULT ((0)),
    	[DescUOrdersStID] [int] NULL CONSTRAINT [DF_OrdersC_DescUOrdersStID]  DEFAULT ((0)),
    	[CopiedFromID] [int] NULL CONSTRAINT [DF_OrdersC_CopiedFromID]  DEFAULT ((0)),
    	[StatusPrio] [varchar](50) NULL,
    	[StatusIcon] [varchar](255) NULL,
    	[StatusText] [nvarchar](500) NULL,
    	[LockedUserID] [int] NULL CONSTRAINT [DF_OrdersC_LockedUserID]  DEFAULT ((0)),
    	[LockedStatus] [int] NULL CONSTRAINT [DF_OrdersC_LockedStatus]  DEFAULT ((0)),
    	[TimestampSYS] [datetime] NULL,
    	[InterfaceRef] [nvarchar](255) NULL,
    	[InterfaceLock] [int] NULL CONSTRAINT [DF_OrdersC_InterfaceLock]  DEFAULT ((0)),
     CONSTRAINT [PK_Orders_Customers] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
    GO
    SET ANSI_PADDING OFF
    GO
    /****** Object:  Table [dbo].[OrdersSt]    Script Date: 20.07.2014 17:31:05 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[OrdersSt](
    	[ID] [int] IDENTITY(1,1) NOT NULL,
    	[OrdersCID] [int] NULL CONSTRAINT [DF_OrdersSt_OrdersCID]  DEFAULT ((0)),
    	[OrdersEID] [int] NULL CONSTRAINT [DF_OrdersSt_OrdersEID]  DEFAULT ((0)),
    	[OrdersCRH] [float] NULL CONSTRAINT [DF_OrdersSt_OrdersCRH]  DEFAULT ((0)),
    	[OrdersERH] [float] NULL CONSTRAINT [DF_OrdersSt_OrdersERH]  DEFAULT ((0)),
    	[StTypeID] [int] NULL CONSTRAINT [DF_OrdersSt_StTypeID]  DEFAULT ((0)),
    	[StParamsSYSP] [varchar](255) NULL,
    	[StDateFrom] [date] NULL,
    	[StTimeFrom] [nvarchar](5) NULL,
    	[StDateTo] [date] NULL,
    	[StTimeTo] [nvarchar](5) NULL,
    	[StTimeFixed] [int] NULL CONSTRAINT [DF_Orders_C_St_StTimeFixed]  DEFAULT ((0)),
    	[StDispoDate] [date] NULL,
    	[StDispoTime] [nvarchar](5) NULL,
    	[StAddrID] [int] NULL CONSTRAINT [DF_OrdersSt_StAddrID]  DEFAULT ((0)),
    	[StAddrName] [nvarchar](255) NULL,
    	[StAddrStreet] [nvarchar](255) NULL,
    	[StAddrCntry] [nvarchar](3) NULL,
    	[StAddrZip] [nvarchar](20) NULL,
    	[StAddrCity] [nvarchar](255) NULL,
    	[StAddrCntcID] [int] NULL CONSTRAINT [DF_OrdersSt_StAddrCntcID]  DEFAULT ((0)),
    	[StAddrCntcName] [nvarchar](255) NULL,
    	[LatWGS] [float] NULL CONSTRAINT [DF_OrdersSt_LatWGS]  DEFAULT ((0)),
    	[LonWGS] [float] NULL CONSTRAINT [DF_OrdersSt_LonWGS]  DEFAULT ((0)),
    	[LatMCT] [float] NULL CONSTRAINT [DF_OrdersSt_LatMCT]  DEFAULT ((0)),
    	[LonMCT] [float] NULL CONSTRAINT [DF_OrdersSt_LonMCT]  DEFAULT ((0)),
    	[StRemark] [ntext] NULL,
    	[StRelationID] [int] NULL CONSTRAINT [DF_OrdersSt_StRelationID]  DEFAULT ((0)),
    	[StInvoiceRcptID] [int] NULL CONSTRAINT [DF_OrdersSt_StInvoiceRcptID]  DEFAULT ((0)),
    	[StPostageID] [int] NULL CONSTRAINT [DF_OrdersSt_StPostageID]  DEFAULT ((0)),
    	[StEquipmentChange] [int] NULL CONSTRAINT [DF_Orders_C_St_StEquipmentChange]  DEFAULT ((0)),
    	[StEquipmentNote] [nvarchar](255) NULL,
    	[StRefNo] [nvarchar](255) NULL,
    	[StCMRNo] [nvarchar](50) NULL,
    	[StCMRAnnexedDocs] [ntext] NULL,
    	[StCMRSendersInstructions] [ntext] NULL,
    	[StCMRSpecialAgreements] [ntext] NULL,
    	[StCMREstablishedOn] [date] NULL,
    	[StCMREstablishedIn] [nvarchar](255) NULL,
    	[StMissionDurationDays] [float] NULL CONSTRAINT [DF_OrdersSt_StMissionDurationDays]  DEFAULT ((0)),
    	[GsFreightAmount] [float] NULL CONSTRAINT [DF_OrdersSt_GsFreightAmount]  DEFAULT ((0)),
    	[GsFreightUnitID] [int] NULL CONSTRAINT [DF_OrdersSt_GsFreightUnitID]  DEFAULT ((0)),
    	[GsFreightDesc] [nvarchar](255) NULL,
    	[GsVehDescTypeID] [int] NULL CONSTRAINT [DF_OrdersSt_GsVehDescTypeID]  DEFAULT ((0)),
    	[GsADRID] [int] NULL CONSTRAINT [DF_OrdersSt_GsADRID]  DEFAULT ((0)),
    	[GsMerchandiseValue] [float] NULL CONSTRAINT [DF_OrdersSt_GsMerchandiseValue]  DEFAULT ((0)),
    	[GsEuroPallets] [float] NULL CONSTRAINT [DF_OrdersSt_GsEuroPallets]  DEFAULT ((0)),
    	[GsLoadingMetres] [float] NULL CONSTRAINT [DF_OrdersSt_GsLoadingMetres]  DEFAULT ((0)),
    	[GsLength] [float] NULL CONSTRAINT [DF_OrdersSt_GsLength]  DEFAULT ((0)),
    	[GsWidth] [float] NULL CONSTRAINT [DF_OrdersSt_GsWidth]  DEFAULT ((0)),
    	[GsHeight] [float] NULL CONSTRAINT [DF_OrdersSt_GsHeight]  DEFAULT ((0)),
    	[GsCubicMetres] [float] NULL CONSTRAINT [DF_OrdersSt_GsCubicMetres]  DEFAULT ((0)),
    	[GsFreightWeight] [float] NULL CONSTRAINT [DF_OrdersSt_GsFreightWeight]  DEFAULT ((0)),
    	[GsCalcWeight] [float] NULL CONSTRAINT [DF_OrdersSt_GsCalcWeight]  DEFAULT ((0)),
    	[GsTemperature] [float] NULL CONSTRAINT [DF_OrdersSt_GsTemperature]  DEFAULT ((0)),
    	[GsStatusSYS] [int] NULL CONSTRAINT [DF_OrdersSt_GsStatus]  DEFAULT ((0)),
    	[GsRefNo] [nvarchar](255) NULL,
    	[StInfo01] [nvarchar](255) NULL,
    	[StInfo02] [nvarchar](255) NULL,
    	[StInfo03] [nvarchar](255) NULL,
    	[StInfo04] [nvarchar](255) NULL,
    	[StInfo05] [nvarchar](255) NULL,
    	[StInfo06] [nvarchar](255) NULL,
    	[StInfo07] [nvarchar](255) NULL,
    	[StInfo08] [nvarchar](255) NULL,
    	[StInfo09] [nvarchar](255) NULL,
    	[StInfo10] [nvarchar](255) NULL,
    	[StAddRemark01] [ntext] NULL,
    	[StAddRemark02] [ntext] NULL,
    	[StAddRemark03] [ntext] NULL,
    	[LockedUserID] [int] NULL CONSTRAINT [DF_OrdersSt_LockedUserID]  DEFAULT ((0)),
    	[LockedStatus] [int] NULL CONSTRAINT [DF_OrdersSt_LockedStatus]  DEFAULT ((0)),
    	[TimestampSYS] [datetime] NULL,
    	[SrcID] [int] NULL CONSTRAINT [DF_OrdersSt_SrcID]  DEFAULT ((0)),
    	[InterfaceRef] [nvarchar](255) NULL,
    	[InterfaceRefBC] [nvarchar](255) NULL,
    	[VCTText] [nvarchar](500) NULL,
     CONSTRAINT [PK_Orders_C_LS] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
    GO
    SET ANSI_PADDING OFF
    GO
    /****** Object:  View [dbo].[OrdersC_Extended]    Script Date: 20.07.2014 17:31:05 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE VIEW [dbo].[OrdersC_Extended]
    AS
    SELECT        dbo.OrdersC.*
    FROM            dbo.Addresses_Billings INNER JOIN
                             dbo.OrdersC ON dbo.Addresses_Billings.ID = dbo.OrdersC.OrdererID INNER JOIN
                             dbo.Addresses_Sites ON dbo.Addresses_Billings.SitesID = dbo.Addresses_Sites.ID INNER JOIN
                             dbo.OrdersSt ON dbo.OrdersC.ID = dbo.OrdersSt.OrdersCID
    
    GO
    SET IDENTITY_INSERT [dbo].[Addresses_Billings] ON 
    
    INSERT [dbo].[Addresses_Billings] ([ID], [AddressesID], [MandatorID], [DeptOwnID], [ABTypeSYS], [AccountNo], [AssemblyAccountNo], [BankOwnID], [BankID], [BankAccountNo], [BankName], [BankCode], [BankIBAN], [BankSWIFT], [CurrencyID], [InvoiceSchemeID], [TariffID], [NumberRangeID], [ABStatusSys], [TOPID], [SitesID], [SearchTerm], [RefNo], [AccountingExportNo], [AccountingExportDate], [IndBillingAddress], [Remark], [AccIf1], [RH], [TimestampSYS]) VALUES (19667, 27728, 1, 0, 1, N'580', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, 1, 1, 0, 0, 0, 1, 19667, NULL, NULL, N'ÜG1300020', CAST(N'2013-11-15' AS Date), NULL, NULL, NULL, 1, CAST(N'2013-03-08 14:20:07.000' AS DateTime))
    SET IDENTITY_INSERT [dbo].[Addresses_Billings] OFF
    SET IDENTITY_INSERT [dbo].[Addresses_Sites] ON 
    
    INSERT [dbo].[Addresses_Sites] ([ID], [AddressesID], [SearchTerm], [SitesTypeSYS], [Name01], [Name02], [Name03], [Street], [Cntry], [Zip], [City], [Telephone], [Mobilephone], [Telefax], [Email], [Web], [IsLoadingSite], [VATNo], [TaxNo], [SitesRemark], [LatWGS], [LonWGS], [LatMCT], [LonMCT], [StTypeID], [ImageMap], [RH], [StatusSYS], [TimestampSYS]) VALUES (19667, 27728, NULL, 3, N'Muster GmbH', NULL, NULL, N'Musterstraße 1', N'AT', N'9999', N'Musterort', N'123456789', NULL, NULL, N'muster@name.com', NULL, -1, NULL, NULL, NULL, 0, 0, 0, 0, 16, N'@XX_Flag_DE.png', 1, 0, CAST(N'2014-03-20 08:28:31.000' AS DateTime))
    SET IDENTITY_INSERT [dbo].[Addresses_Sites] OFF
    SET IDENTITY_INSERT [dbo].[OrdersC] ON 
    
    INSERT [dbo].[OrdersC] ([ID], [MandatorID], [DeptOwnID], [UserID], [OrderDate], [OrderTypeID], [OrderTypeSYS], [PosNo], [ShortDesc], [StatusID], [OrdererID], [OrdererContactID], [RelationID], [RefNo], [PostageID], [ProjectID], [InvoiceRcptID], [Remark01], [Remark02], [Remark03], [Remark04], [DescLOrdersStID], [DescUOrdersStID], [CopiedFromID], [StatusPrio], [StatusIcon], [StatusText], [LockedUserID], [LockedStatus], [TimestampSYS], [InterfaceRef], [InterfaceLock]) VALUES (1, 1, 1, 1, CAST(N'2014-03-20 00:00:00.000' AS DateTime), 9, 0, N'1400338', NULL, 0, 19667, 0, 0, NULL, 0, 0, 19667, NULL, NULL, NULL, NULL, 172795, 172796, 84864, N'13', N'@XX_Status_Red.png', N'Auftragsbestätigung gedruckt: MUSS überfällig <13>', 0, 0, CAST(N'2014-03-20 11:15:03.000' AS DateTime), NULL, 0)
    SET IDENTITY_INSERT [dbo].[OrdersC] OFF
    SET IDENTITY_INSERT [dbo].[OrdersSt] ON 
    
    INSERT [dbo].[OrdersSt] ([ID], [OrdersCID], [OrdersEID], [OrdersCRH], [OrdersERH], [StTypeID], [StParamsSYSP], [StDateFrom], [StTimeFrom], [StDateTo], [StTimeTo], [StTimeFixed], [StDispoDate], [StDispoTime], [StAddrID], [StAddrName], [StAddrStreet], [StAddrCntry], [StAddrZip], [StAddrCity], [StAddrCntcID], [StAddrCntcName], [LatWGS], [LonWGS], [LatMCT], [LonMCT], [StRemark], [StRelationID], [StInvoiceRcptID], [StPostageID], [StEquipmentChange], [StEquipmentNote], [StRefNo], [StCMRNo], [StCMRAnnexedDocs], [StCMRSendersInstructions], [StCMRSpecialAgreements], [StCMREstablishedOn], [StCMREstablishedIn], [StMissionDurationDays], [GsFreightAmount], [GsFreightUnitID], [GsFreightDesc], [GsVehDescTypeID], [GsADRID], [GsMerchandiseValue], [GsEuroPallets], [GsLoadingMetres], [GsLength], [GsWidth], [GsHeight], [GsCubicMetres], [GsFreightWeight], [GsCalcWeight], [GsTemperature], [GsStatusSYS], [GsRefNo], [StInfo01], [StInfo02], [StInfo03], [StInfo04], [StInfo05], [StInfo06], [StInfo07], [StInfo08], [StInfo09], [StInfo10], [StAddRemark01], [StAddRemark02], [StAddRemark03], [LockedUserID], [LockedStatus], [TimestampSYS], [SrcID], [InterfaceRef], [InterfaceRefBC], [VCTText]) VALUES (1, 1, 2562, 1, 1, 1, N'#01#, #03#, #04#, #05#, #06#, #07#, #09#, #51#', CAST(N'2014-03-20' AS Date), NULL, NULL, NULL, 0, CAST(N'2014-03-20' AS Date), NULL, 0, N'Muster GmbH', N'Musterstraße 1', N'AT', N'9999', N'Musterort', 0, NULL, 0, 0, 0, 0, NULL, 0, 19667, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, CAST(N'2014-03-20 11:14:55.000' AS DateTime), 1, NULL, NULL, NULL)
    INSERT [dbo].[OrdersSt] ([ID], [OrdersCID], [OrdersEID], [OrdersCRH], [OrdersERH], [StTypeID], [StParamsSYSP], [StDateFrom], [StTimeFrom], [StDateTo], [StTimeTo], [StTimeFixed], [StDispoDate], [StDispoTime], [StAddrID], [StAddrName], [StAddrStreet], [StAddrCntry], [StAddrZip], [StAddrCity], [StAddrCntcID], [StAddrCntcName], [LatWGS], [LonWGS], [LatMCT], [LonMCT], [StRemark], [StRelationID], [StInvoiceRcptID], [StPostageID], [StEquipmentChange], [StEquipmentNote], [StRefNo], [StCMRNo], [StCMRAnnexedDocs], [StCMRSendersInstructions], [StCMRSpecialAgreements], [StCMREstablishedOn], [StCMREstablishedIn], [StMissionDurationDays], [GsFreightAmount], [GsFreightUnitID], [GsFreightDesc], [GsVehDescTypeID], [GsADRID], [GsMerchandiseValue], [GsEuroPallets], [GsLoadingMetres], [GsLength], [GsWidth], [GsHeight], [GsCubicMetres], [GsFreightWeight], [GsCalcWeight], [GsTemperature], [GsStatusSYS], [GsRefNo], [StInfo01], [StInfo02], [StInfo03], [StInfo04], [StInfo05], [StInfo06], [StInfo07], [StInfo08], [StInfo09], [StInfo10], [StAddRemark01], [StAddRemark02], [StAddRemark03], [LockedUserID], [LockedStatus], [TimestampSYS], [SrcID], [InterfaceRef], [InterfaceRefBC], [VCTText]) VALUES (2, 1, 2562, 2, 2, 2, N'#02#, #03#, #04#, #05#, #06#, #09#, #51#', CAST(N'2014-03-20' AS Date), NULL, NULL, NULL, 0, CAST(N'2014-03-20' AS Date), NULL, 0, N'Microsoft Corp.', N'Berlinerstraße 3', N'DE', N'12345', N'Berlin', 0, NULL, 0, 0, 0, 0, NULL, 0, 19667, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, CAST(N'2014-03-20 11:14:55.000' AS DateTime), 2, NULL, NULL, NULL)
    SET IDENTITY_INSERT [dbo].[OrdersSt] OFF
    EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
    Begin DesignProperties = 
       Begin PaneConfigurations = 
          Begin PaneConfiguration = 0
             NumPanes = 4
             Configuration = "(H (1[40] 4[20] 2[20] 3) )"
          End
          Begin PaneConfiguration = 1
             NumPanes = 3
             Configuration = "(H (1 [50] 4 [25] 3))"
          End
          Begin PaneConfiguration = 2
             NumPanes = 3
             Configuration = "(H (1[50] 2[25] 3) )"
          End
          Begin PaneConfiguration = 3
             NumPanes = 3
             Configuration = "(H (4 [30] 2 [40] 3))"
          End
          Begin PaneConfiguration = 4
             NumPanes = 2
             Configuration = "(H (1[56] 3) )"
          End
          Begin PaneConfiguration = 5
             NumPanes = 2
             Configuration = "(H (2 [66] 3))"
          End
          Begin PaneConfiguration = 6
             NumPanes = 2
             Configuration = "(H (4 [50] 3))"
          End
          Begin PaneConfiguration = 7
             NumPanes = 1
             Configuration = "(V (3))"
          End
          Begin PaneConfiguration = 8
             NumPanes = 3
             Configuration = "(H (1[56] 4[18] 2) )"
          End
          Begin PaneConfiguration = 9
             NumPanes = 2
             Configuration = "(H (1 [75] 4))"
          End
          Begin PaneConfiguration = 10
             NumPanes = 2
             Configuration = "(H (1[66] 2) )"
          End
          Begin PaneConfiguration = 11
             NumPanes = 2
             Configuration = "(H (4 [60] 2))"
          End
          Begin PaneConfiguration = 12
             NumPanes = 1
             Configuration = "(H (1) )"
          End
          Begin PaneConfiguration = 13
             NumPanes = 1
             Configuration = "(V (4))"
          End
          Begin PaneConfiguration = 14
             NumPanes = 1
             Configuration = "(V (2))"
          End
          ActivePaneConfig = 4
       End
       Begin DiagramPane = 
          Begin Origin = 
             Top = 0
             Left = 0
          End
          Begin Tables = 
             Begin Table = "Addresses_Billings"
                Begin Extent = 
                   Top = 275
                   Left = 267
                   Bottom = 775
                   Right = 532
                End
                DisplayFlags = 280
                TopColumn = 0
             End
             Begin Table = "Addresses_Sites"
                Begin Extent = 
                   Top = 220
                   Left = 655
                   Bottom = 749
                   Right = 861
                End
                DisplayFlags = 280
                TopColumn = 0
             End
             Begin Table = "OrdersC"
                Begin Extent = 
                   Top = 35
                   Left = 21
                   Bottom = 739
                   Right = 208
                End
                DisplayFlags = 280
                TopColumn = 2
             End
             Begin Table = "OrdersSt"
                Begin Extent = 
                   Top = 14
                   Left = 277
                   Bottom = 256
                   Right = 529
                End
                DisplayFlags = 280
                TopColumn = 0
             End
          End
       End
       Begin SQLPane = 
          PaneHidden = 
       End
       Begin DataPane = 
          Begin ParameterDefaults = ""
          End
          Begin ColumnWidths = 80
             Width = 284
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
        ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'OrdersC_Extended'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane2', @value=N'     Width = 1500
             Width = 1500
             Width = 1500
             Width = 4305
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
             Width = 1500
          End
       End
       Begin CriteriaPane = 
          PaneHidden = 
          Begin ColumnWidths = 11
             Column = 1440
             Alias = 900
             Table = 1170
             Output = 720
             Append = 1400
             NewValue = 1170
             SortType = 1350
             SortOrder = 1410
             GroupBy = 1350
             Filter = 1350
             Or = 1350
             Or = 1350
             Or = 1350
          End
       End
    End
    ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'OrdersC_Extended'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=2 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'OrdersC_Extended'
    GO
    

    Dieses Beispiel (mit den 4 Tabellen) ist übrigends nur ein Beispiel von mehreren. Wir möchten so eine komfortable Suche dann nicht nur für Aufträge, sondern auch in anderen Programmpunkten anbieten. Aber wenn ich mal eine Lösung für diesen Fall habe, dann kann ich das sicherlich adaptieren.

    Vielen Dank!

    Sonntag, 20. Juli 2014 15:37
  • allerdings war die Sicht dann beim Volltextkatalog noch immer nicht zum Auswählen.

    Hallo Roland,

    auf der View muss ein eindeutiger Index, der nur über ein Feld geht, vorhanden sein, ansonsten kannst Du keinen Volltextindex anlegen.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Montag, 21. Juli 2014 09:08
  • Hallo Olaf!

    Ja das habe ich mir schon fast gedacht.

    Montag, 21. Juli 2014 13:28
  • Hallo!

    Ich möchte jetzt den Weg über eine Stored Procedure gehen, also einzelne Abfragen pro Tabelle machen und die Daten einsammeln.

    Dabei habe ich aber folgendes Problem:

    Wenn ein User den Suchbegriff "Firmenname Berlin München" eingibt, kann ich ja nicht in den 3 Tabellen via FREETEXT(*, 'Firmenname Berlin München') suchen, da beispielsweise der "Firmenname" nur in der Tabelle "Addresses_Sites" vorkommt, "Berlin" beispielsweise nur in OrdersSt, etc.

    FREETEXT(*, '"Firmenname" OR "Berlin" OR "München"') geht auch nicht, da es dann sein könnte, dass in 2 der 3 Tabellen nur "Firmenname" gefunden wird und in der dritten Tabelle nur "Berlin". "München" wäre dabei aber komplett außer acht gelassen.

    Meine Idee wäre nun, pro Suchbegriff und pro Tabelle eine Abfrage zu machen und als Ergebnis 2 Spalten (ID und Suchterm) zurückzugeben (3 Tabellen * 3 Suchwörte = 9 Abfragen :/). Das ganze sollte in einer Stored Procedure gemerged und dann gruppiert werden. Danach könnte ich nochmals eine Gruppierung machen, wo ich dann die Suchterme zähle. Bekomme ich als Ergebnis 3 zurück, sollte sichergestellt sein, dass alle 3 Suchbegriffe im Zusammenhang mit der AuftragsID vorkommen und die AuftragsID korrekt ist. (BTW: Gibt es eine Möglichkeit, beispielsweise bei "FREETEXT(*, '"Berlin" OR "München"')" den Term zurückzugeben, der gefunden wurde? Wenn bei einem Datensatz "Berlin" gefunden wird, dann "Berlin zurückgeben, wenn "München" gefunden wird, dann München (dann bräuchte ich bei 3 Suchbegriffen nur 1 Abfrage pro Tabelle)

    Was haltet ihr davon?

    Unsere derzeitige Suchfunktion funktioniert so, dass beispielsweise bei der Anlage eines Auftrages sämtliche dazugehörige Daten wie Kundenadresse, die einzelnen Wegstationen, etc. alles mit der ID des Auftrages in einer Tabelle gespeichert wird.

    Als Beispiel:

    ReferenceID SearchTerm

    1 Firmenname

    1 Auftragsnr.

    1 <Ort von Station 1>

    1 <Ort von Station 2>

    1 <Ort von Station 3>

    etc.

    Mich stört allerdings, dass wir bei dieser Vorgehensweise unsere "Index-Tabelle" selbst warten müssen. Würde jemand per Datenbank-Statement Daten verändern, würden wir diese Änderungen nicht mitbekommen. Ist also relativ fehleranfällig.

    Vielen Dank für eure Hilfe, hoffe das war alles soweit verständlich!

    Dienstag, 22. Juli 2014 17:06
  • Hallo!

    Oder was haltet ihr davon, dass ich unsere "Index-Tabelle" zwar weiterhin warte, aber das per Trigger machen lasse? Dann würden wir auch Änderungen direkt in der Tabelle (beispielsweise über Management Studio) mitbekommen.

    Danke!

    Dienstag, 29. Juli 2014 11:13